The udeep namespace, version 0.3
https://ultradeeprange.github.io/udeep/ns/0.3/
This address is the name of the XMP namespace in which a figure file declares how its data became light: the
metadata of the UDeep Figure Profile, draft v0.3, section 8. The
usual prefix is udeep. A reader never needs to fetch the address; this page is for people who look
it up. The address is provisional until version 1.0 of the profile.
Properties
Copied from section 8.1 of the profile, which defines them. Sections 8.3 to 8.6 say which numbers have the offset removed, how numbers are written, which declarations a reader refuses, and how the two digests are taken.
| Property | Type | Meaning |
|---|---|---|
udeep:Version |
Text | profile version, "0.3" |
udeep:ImageState |
Text | data-referred |
udeep:DataUnit |
Text | unit of the data values |
udeep:NoiseModel |
Text | constant, poisson, relative, tolerance or unknown (§5.2) |
udeep:NoiseParameter |
Real | the model's parameter (§5.2), greater than zero; required unless the model is unknown, and absent then |
udeep:Stretch |
Text | linear, log, asinh or proportional |
udeep:RangeLow, udeep:RangeHigh |
Real | the declared range, in data units after StretchOffset has been subtracted (8.3) |
udeep:StretchWidth, udeep:StretchOffset |
Real | the asinh width; the value subtracted from the data before the stretch |
udeep:Knee |
Real | data value mapped to diffuse white: the data value itself, before StretchOffset is subtracted (8.3) |
udeep:KneeRule |
Text | physical, statistical, preset or percentile, then a description |
udeep:AboveKnee |
Text | form of the segment above the knee, with its parameters: hermite; exit=s (§6.7) |
udeep:ReferenceHeadroom |
Real | headroom the figure was authored for (linear ratio), greater than 1 |
udeep:Masked |
Integer | number of pixels in the validity mask |
udeep:DerivedMask |
Text | required when a mask was derived from neighbourhoods (§6.2a): the rule's name, for example isolated-3x3. Added 2026-10-08. |
udeep:DerivedMasked |
Integer | the number of pixels that rule holds at white, beyond the validity mask. Added 2026-10-08. |
udeep:MaxDataStep |
Real | largest Δx_q over the declared range, in data units |
udeep:Record |
Text | data-record or rendering (§7.3) |
udeep:Preset |
Text | optional: highlight, extend or another named preset (informative) |
udeep:RoundingToNoise |
Real | optional: the worst value over the declared range of the rounding error divided by the stated uncertainty (§7.2.1); omitted when the noise model is unknown. Writers store 10⁹ where the ratio is larger than that or has no bound. Added 2026-10-07. |
udeep:DataDigest |
Text | optional: the digest of the array that was mapped, as defined in 8.6. It ties the file to its data: a reader holding the data can confirm it is the same. Where the figure shows processed data (whitened, binned, calibrated), the digest is of the processed array. Added 2026-10-08. |
udeep:DataSource |
Text | optional: where the data is kept: doi:… where the data has one, otherwise a URL, otherwise a description; several are separated by ;. Added 2026-10-08. |
udeep:DataUnitCode |
Text | optional: the unit in machine-readable form, as a UCUM code (for example K, s-1). DataUnit remains the text for people. Added 2026-10-08. |
udeep:SdrDigest |
Text | optional, except in a file with no SDR base of its own, which MUST declare it (9.1.2): the digest of the fair SDR rendering's 8-bit RGB pixels, before any lossy coding, as defined in 8.6. It ties an HDR file to the figure of record (§6.8). Added 2026-10-08; required of such a file 2026-10-14. |
udeep:DataDigestSha3 |
Text | optional, and only with DataDigest: the same bytes digested with SHA3-256 (8.6), a hash function of another design, so that the link to the data holds if either function is ever broken. Added 2026-10-22. |
udeep:SdrDigestSha3 |
Text | optional, and only with SdrDigest: the SDR figure's bytes digested with SHA3-256 (8.6). Added 2026-10-22. |
udeep:ColourMap |
Text | the map from light to colour (§6.10): grey, or a registered map as name/version (for example fire/2). Added 2026-10-07; versioned 2026-10-08. |
udeep:ColourMapTable |
Text | required unless the map is grey or a registered map at a registered headroom: the table itself, as the node count, ;, then base64 of the two segments' numbers (little-endian float32, row by row). Added 2026-10-08. |
NoiseParameter, DerivedMask, ColourMapTable and SdrDigest are required in the cases their rows state.
Preset, RoundingToNoise, DataDigest, DataDigestSha3, SdrDigestSha3, DataSource and DataUnitCode
are optional. Every other property
MUST be present, including one whose value is zero or the usual one (Masked, DerivedMasked, StretchOffset,
StretchWidth, AboveKnee).
An example
The declaration in the repository's worked example of a data record,
detector_record_pq16.png:
a synthetic 12-bit detector frame stored as a 16-bit PQ PNG. It is shown one property to a line; in the file it
is one element.
<rdf:Description
rdf:about=""
xmlns:udeep="https://ultradeeprange.github.io/udeep/ns/0.3/"
udeep:DataUnit="counts"
udeep:Stretch="linear"
udeep:RangeLow="0"
udeep:RangeHigh="4095"
udeep:Knee="1000"
udeep:KneeRule="preset; white at 1,000 counts"
udeep:ReferenceHeadroom="4"
udeep:MaxDataStep="0.58188970746005"
udeep:NoiseModel="constant"
udeep:NoiseParameter="3"
udeep:StretchWidth="1"
udeep:StretchOffset="0"
udeep:AboveKnee="hermite; exit=1"
udeep:Masked="0"
udeep:DerivedMasked="0"
udeep:Record="data-record"
udeep:Preset="extend"
udeep:ColourMap="grey"
udeep:RoundingToNoise="0.05599236320678874"
udeep:DataDigest="sha256:b7d7c57afe15eefe5de15105d12e87cccd659f37744da5fd11fa0a2c3df4c6d0"
udeep:SdrDigest="sha256:a8bcfcaad5f47548b0d75998162c4ff2fbe0e7d4fd0c3b750fc62cdf95e58b6b"
udeep:Version="0.3"
udeep:ImageState="data-referred"/>