fNIRS/snirf

Question about how to handle calculated data type

Closed this issue · 3 comments

Dear all,

This question is related to #22, as I don't understand how chromophore such as HbO,HbR, and HbT can be stored in snirf file.

What I understand from the specification and from #22 is that, when storing processed data such as Hb0, in /nirs(i)/data(j)/measurementList(k)/ :

  • dataTypeLabel is either "HbO", "HbR", or "HbT",
  • dataType is 99999

but then I don't know how to set the following values in :

  • dataTypeIndex : should it be 4 as Hb0 is the fourth data type label ?
  • wavelengthIndex ?

Also, shouldn't /nirs(i)/probe/wavelengths be optional when storing processed data such as HbO, HbR, Hbt ?

As similar question, when storing raw data, what should measurementList(k).dataTypeLabel contain ? Shouldn't there be a "raw" option here ? it's an optional field so I guess we don't specify it but measurementList(k)/dataTypeIndex is required so what should the value of dataTypeIndex in this case ?

Best regards,
Edouard

fangq commented

these are good points. @jayd1860 added this part, Jay, what do you think?

HI, Do you have news about those questions ?

dboas commented

You are right, dataTypeIndex and wavelengthIndex are not needed in this case of processed data HbO.
What is the right solution?
At present, in Homer3 in this situation of processed data, we just set wavelengthIndex=0 dataTypeIndex=1.
Jay and I discussed this and think we should set wavelengthIndex=-1 and dataTypeIndex=-1 in these cases when they are not used.
It seems to me completely possible that someone could spec a dataTypeIndex for processed data in the future. Just at the moment I don't see what that would be.

As for adding 'raw' to measurementList(k).dataTypeLabel, we can certainly do that. I don't think it has any other ramifications does it?