nifti2_data_format
nifti2_data_format > Proposal : Permitting Custom Field Value
Mar 1, 2011 05:03 PM | Cinly Ooi
Proposal : Permitting Custom Field Value
Dear All,
While NifTI tries its very best to be inclusive, there will always be time where the NifTI format did not account for certain use case, or advancement in the field required data to be stored in a way that NifTI did not anticipate.
In these cases, it is inevitable that developers will simply create a customised version of NifTI for their own use. NifTI's licensing T&C permits them to do this, giving us no recourse (even legal one) if someone insisting on customising NifTI. That is assuming we want to prohibit creation of customisation of NifTI in the first place which we don't.
We can, however, guide these customisation so that there will be less conflict with existing NifTI format. Some of these effort are simply minor changes that has very minor impact in everyday use of NifTI.
In NifTI, if we permit customisation in datatype (NIFTI_TYPE_*), intent code (NIFTI_INTENT_*), xform code (NIFTI_XFORM_), measurement unit (NIFTI_UNITS_) and slice sequence (NIFTI_SLICE_*), then together with nifti_extension, virtually anything we envisage to use in neuroimaging will be covered.
To provide guidance to customisation, what we have to do is to define a range, e.g. say 2020-2047 for NIFTI_INTENT_* (highest defined is 2005 for NIFTI_INTENT_SHAPE), which users can use to define anything they want. The NifTI standard will not use code in this range when defining new constants in return for them using codes in the defined range. This way, instead of user using any code to define their customisation, we restrict them to known codes.
In C, it is common to mark the range using a preprocessor constant, e.g
#define NIFTI_INTENT_CUSTOM 2020 /* USER CUSTOM INTENT CODE 2020-2047 inclusive */
This system is like DICOM's even number group code, which DICOM reserves for use by anyone who care to put custom data into dicom.
Thanks
Cinly
While NifTI tries its very best to be inclusive, there will always be time where the NifTI format did not account for certain use case, or advancement in the field required data to be stored in a way that NifTI did not anticipate.
In these cases, it is inevitable that developers will simply create a customised version of NifTI for their own use. NifTI's licensing T&C permits them to do this, giving us no recourse (even legal one) if someone insisting on customising NifTI. That is assuming we want to prohibit creation of customisation of NifTI in the first place which we don't.
We can, however, guide these customisation so that there will be less conflict with existing NifTI format. Some of these effort are simply minor changes that has very minor impact in everyday use of NifTI.
In NifTI, if we permit customisation in datatype (NIFTI_TYPE_*), intent code (NIFTI_INTENT_*), xform code (NIFTI_XFORM_), measurement unit (NIFTI_UNITS_) and slice sequence (NIFTI_SLICE_*), then together with nifti_extension, virtually anything we envisage to use in neuroimaging will be covered.
To provide guidance to customisation, what we have to do is to define a range, e.g. say 2020-2047 for NIFTI_INTENT_* (highest defined is 2005 for NIFTI_INTENT_SHAPE), which users can use to define anything they want. The NifTI standard will not use code in this range when defining new constants in return for them using codes in the defined range. This way, instead of user using any code to define their customisation, we restrict them to known codes.
In C, it is common to mark the range using a preprocessor constant, e.g
#define NIFTI_INTENT_CUSTOM 2020 /* USER CUSTOM INTENT CODE 2020-2047 inclusive */
This system is like DICOM's even number group code, which DICOM reserves for use by anyone who care to put custom data into dicom.
Thanks
Cinly
Threaded View
| Title | Author | Date |
|---|---|---|
| Mark Jenkinson | Feb 28, 2011 | |
| Mark Jenkinson | Mar 15, 2011 | |
| Cinly Ooi | Mar 15, 2011 | |
| Cinly Ooi | Mar 2, 2011 | |
| Ged Ridgway | Mar 7, 2011 | |
| Jon Clayden | Mar 5, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Andrew Janke | Mar 1, 2011 | |
| Cinly Ooi | Mar 2, 2011 | |
| Satrajit Ghosh | Mar 5, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Denis Rivière | Feb 28, 2011 | |
| Cinly Ooi | Mar 1, 2011 | |
| Brandon Whitcher | Mar 1, 2011 | |
| Satrajit Ghosh | Feb 28, 2011 | |
| Jonas Larsson | Mar 1, 2011 | |
| Mark Horsfield | Mar 1, 2011 | |
| Andrew Janke | Mar 1, 2011 | |
| Jochen Weber | Feb 28, 2011 | |
| Randall Frank | Mar 1, 2011 | |
| Michael Martinez | Feb 28, 2011 | |
| Cinly Ooi | Feb 28, 2011 | |
| Chris Rorden | Feb 28, 2011 | |
