From 538f2fe6d0d4dea31c35e64c52957754356865d7 Mon Sep 17 00:00:00 2001 From: Samuel Powell Date: Thu, 11 Jul 2024 12:22:51 +0100 Subject: [PATCH 1/3] Remove local indexing --- snirf_specification.md | 55 ------------------------------------------ 1 file changed, 55 deletions(-) diff --git a/snirf_specification.md b/snirf_specification.md index 19458b8..4f1f386 100644 --- a/snirf_specification.md +++ b/snirf_specification.md @@ -30,9 +30,6 @@ Shared Near Infrared Spectroscopy Format (SNIRF) Specification * [data.measurementList.dataTypeIndex](#nirsidatajmeasurementlistkdatatypeindex) * [data.measurementList.sourcePower](#nirsidatajmeasurementlistksourcepower) * [data.measurementList.detectorGain](#nirsidatajmeasurementlistkdetectorgain) - * [data.measurementList.moduleIndex](#nirsidatajmeasurementlistkmoduleindex) - * [data.measurementList.sourceModuleIndex](#nirsidatajmeasurementlistksourcemoduleindex) - * [data.measurementList.detectorModuleIndex](#nirsidatajmeasurementlistkdetectormoduleindex) * [stim](#nirsistimj) * [stim.name](#nirsistimjname) * [stim.data](#nirsistimjdata) @@ -57,7 +54,6 @@ Shared Near Infrared Spectroscopy Format (SNIRF) Specification * [probe.landmarkLabels](#nirsiprobelandmarklabelsj) * [probe.CoordinateSystem](#nirsiprobecoordinatesystem) * [probe.CoordinateSystemDescription](#nirsiprobecoordinatesystemdescription) - * [probe.useLocalIndex](#nirsiprobeuselocalindex) * [aux](#nirsiauxj) * [aux.name](#nirsiauxjname) * [aux.dataTimeSeries](#nirsiauxjdatatimeseries) @@ -174,9 +170,6 @@ Note that this table serves as machine-readable schema for the SNIRF format. Its |            `dataTypeIndex`            | * Data type index for a given channel  |   ``  * | |            `sourcePower`              | * Source power for a given channel  |   ``    | |            `detectorGain`             | * Detector gain for a given channel  |   ``    | -|            `moduleIndex`              | * Index of the parent module (if modular) |   ``    | -|            `sourceModuleIndex`        | * Index of the source's parent module |   ``    | -|            `detectorModuleIndex`      | * Index of the detector's parent module |   ``    | |     `stim{i}`                         | * Root-group for stimulus measurements       |  `{i}`    | |         `name`                        | * Name of the stimulus data     |   `"s"`  + | |         `data`                        | * Data stream of the stimulus channel | `[[,...]]` +| @@ -201,7 +194,6 @@ Note that this table serves as machine-readable schema for the SNIRF format. Its |         `landmarkLabels`              | * String arrays specifying landmark names    |  `["s",...]`   | |         `coordinateSystem`            | * Coordinate system used in probe description|   `"s"`   | |         `coordinateSystemDescription` | * Description of coordinate system    |   `"s"`   | -|         `useLocalIndex`               | * If source/detector index is within a module|   ``    | |     `aux{i}`                          | * Root-group for auxiliary measurements      |  `{i}`    | |         `name`                        | * Name of the auxiliary channel    |   `"s"`  + | |         `dataTimeSeries`              | * Data acquired from the auxiliary channel   | `[[,...]]` +| @@ -514,39 +506,6 @@ The units are not defined, unless the user takes the option of using a `metaData Detector gain -#### /nirs(i)/data(j)/measurementList(k)/moduleIndex -* **Presence**: optional -* **Type**: integer -* **Location**: `/nirs(i)/data(j)/measurementList(k)/moduleIndex` - -Index of a repeating module. If `moduleIndex` is provided while `useLocalIndex` -is set to `true`, then, both `measurementList(k).sourceIndex` and -`measurementList(k).detectorIndex` are assumed to be the local indices -of the same module specified by `moduleIndex`. If the source and -detector are located on different modules, one must use `sourceModuleIndex` -and `detectorModuleIndex` instead to specify separate parent module -indices. See below. - - -#### /nirs(i)/data(j)/measurementList(k)/sourceModuleIndex -* **Presence**: optional -* **Type**: integer -* **Location**: `/nirs(i)/data(j)/measurementList(k)/sourceModuleIndex` - -Index of the module that contains the source of the channel. -This index must be used together with `detectorModuleIndex`, and -can not be used when `moduleIndex` presents. - -#### /nirs(i)/data(j)/measurementList(k)/detectorModuleIndex -* **Presence**: optional -* **Type**: integer -* **Location**: `/nirs(i)/data(j)/measurementList(k)/detectorModuleIndex` - -Index of the module that contains the detector of the channel. -This index must be used together with `sourceModuleIndex`, and -can not be used when `moduleIndex` presents. - - For example, if `measurementList5` is a structure with `sourceIndex=2`, `detectorIndex=3`, `wavelengthIndex=1`, `dataType=1`, `dataTypeIndex=1` would imply that the data in the 5th column of the `dataTimeSeries` variable was @@ -875,20 +834,6 @@ paper describing the system in greater detail. This field is required if the `coordinateSystem` field is set to "Other". -#### /nirs(i)/probe/useLocalIndex -* **Presence**: optional -* **Type**: integer -* **Location**: `/nirs(i)/probe/useLocalIndex` - -For modular NIRS systems, setting this flag to a non-zero integer indicates -that `measurementList(k).sourceIndex` and `measurementList(k).detectorIndex` -are module-specific local-indices. One must also include -`measurementList(k).moduleIndex`, or when cross-module channels present, both -`measurementList(k).sourceModuleIndex` and `measurementList(k).detectorModuleIndex` -in the `measurementList` structure in order to restore the global indices -of the sources/detectors. - - #### /nirs(i)/aux(j) * **Presence**: optional * **Type**: indexed group From a367d5e917913db1f9e40e03eebe30512d38cdcc Mon Sep 17 00:00:00 2001 From: Samuel Powell Date: Thu, 11 Jul 2024 12:26:33 +0100 Subject: [PATCH 2/3] Update changelog with loal indexing removal --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index da7723f..530880d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,9 @@ SNIRF uses the [Semantic Versioning](https://semver.org) scheme. * Specified that `aux{i}/dataTimeSeris` is a 2D array. Multiple channels of data can be present, otherwise 2nd dimension should be 1. * Added language preventing `metaDataTags` sub-groups * Added notice that the summary table is intended to be machine-readable +* Removed local channel indexing owing to incomplete specification. + +The implementation did not define a mapping from local to global indices, and was thus incomplete. ### `v1.0` (September 23 2021) From bce76e1615f7dbf123e1ec297ab8465534f43d97 Mon Sep 17 00:00:00 2001 From: Samuel Powell Date: Thu, 11 Jul 2024 12:52:03 +0100 Subject: [PATCH 3/3] Fix changelog --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 530880d..311edb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,8 +22,6 @@ SNIRF uses the [Semantic Versioning](https://semver.org) scheme. * Added language preventing `metaDataTags` sub-groups * Added notice that the summary table is intended to be machine-readable * Removed local channel indexing owing to incomplete specification. - -The implementation did not define a mapping from local to global indices, and was thus incomplete. ### `v1.0` (September 23 2021)