fNIRS/snirf

Units for data saved with dataType 99999: Processed

rob-luke opened this issue · 5 comments

Does the specification describe the units that processed data is stored with? I took a fresh read and couldn't find it, but maybe I missed it.

I have some Kernel SNIRF files with HbO HbR data and I am guessing its storing the data in uMol due to the large values (is this correct @Zahra-M-Aghajan ?).

The default time unit is seconds, I assume to match with SI base units. If I was to store processed data I would have followed this convention and stored the data in mole. Many software also store everything internally as SI base unit to simplify calculations and reduce chance of scaling errors. So I think there is some ambiguity here that we may wish to address.

Should we add an optional metadata tag analogous to LengthUnit or TimeUnit for specifying the units of the 99999: Processed data types? Something like SubstanceUnit or ProcessedUnit?

fangq commented

@rob-luke, the dataType field is associated with a channel in measurementList{k}, so, the best place to declare a unit is also in measurementList.

we can solve this by either define a default unit for every dataTypeLabel the spec permits, or, add something like measurementList{k}.dataUnit

Thanks @fangq. It seems I didn't miss something obvious then.

I will open a PR based on your suggestion and we can discuss further there.

Does the specification describe the units that processed data is stored with? I took a fresh read and couldn't find it, but maybe I missed it.

I have some Kernel SNIRF files with HbO HbR data and I am guessing its storing the data in uMol due to the large values (is this correct @Zahra-M-Aghajan ?).

The default time unit is seconds, I assume to match with SI base units. If I was to store processed data I would have followed this convention and stored the data in mole. Many software also store everything internally as SI base unit to simplify calculations and reduce chance of scaling errors. So I think there is some ambiguity here that we may wish to address.

Should we add an optional metadata tag analogous to LengthUnit or TimeUnit for specifying the units of the 99999: Processed data types? Something like SubstanceUnit or ProcessedUnit?

@rob-luke That is correct re the units. I also support this addition (clarification on the exported units. Would be happy to pitch in wherever applicable.

add something like measurementList{k}.dataUnit

This is a great solution. @dboas and I would like this for each aux as well.

See #92 for my proposed addition.