NeurodataWithoutBorders / nwbinspector

Tool to help inspect NWB files for compliance with NWB Best Practices
https://nwbinspector.readthedocs.io/
Other
17 stars 10 forks source link

[Add Check]: units are in SI values #208

Open CodyCBakerPhD opened 2 years ago

CodyCBakerPhD commented 2 years ago

What would you like to see added to the NWBInspector?

There is a best practice section currently on units of measurement (https://nwbinspector.readthedocs.io/en/dev/best_practices/time_series.html#units-of-measurement) for the units field of any TimeSeries.

@weiglszonja Recently found some examples worth bringing up regarding this.

(a) where they use the British spellingof the words, e.g., 'metres' instead of 'meters'. We should probably decide and specify in the Best Practices whether to use American (which is what we normally suggest) or British spelling, since this can have an impact on machine readability down the line.

(b) with respect to abbreviations, we could also just enforce people to use standard SI abbreviations, i.e, 'meters' -> 'm'

(c) we also need to decide the official BP way of specifying division quantities, such as 'meters per second' or in combination with (b), 'm/s', which is what we've typically used ourselves.

Also it would be cool if we had a check that ensures the unit field follows SI units, but not sure what the best way to do that would be other than hard coding all the different SI base types separated from prefixes ('meters', 'second', 'volts', 'amperes', etc.)

Pseudocode or other logic of the check

No response

Do you have any interest in helping implement the check function?

Yes.

Code of Conduct

CodyCBakerPhD commented 2 years ago

https://github.com/bids-standard/bids-specification/pull/411 and https://github.com/NeurodataWithoutBorders/nwb-schema/pull/446 came up in meeting for this.

I do like http://people.csail.mit.edu/jaffer/MIXF/CMIXF-12

CodyCBakerPhD commented 2 years ago

Also happy to enlist the help of @weiglszonja with this if you want to spearhead it. Also happy to show you how to add check functions in our next meeting

weiglszonja commented 2 years ago

@CodyCBakerPhD Sure, it would be nice to put together something like this: https://github.com/sappelhoff/bids-specification/blob/master/src/99-appendices/05-units.md

weiglszonja commented 2 years ago

might be useful for the check functions (for future reference): https://github.com/sensein/cmixf

CodyCBakerPhD commented 2 years ago

Also suggesting a.u. to denote arbitrary units whenever unknown or unavailable. Remember this being pretty common for publication figures where the unit scales didn't really matter