Rendering settings specification
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 171
- Forks
- 75
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 20
Description
Over the past few weeks we assembled a draft for a "rendering settings" specification (current spec: https://ngff.openmicroscopy.org/latest/#omero-md ); taking into account how OMERO stores rendering information, how other image formats handle it, and what information various clients / viewers need for rendering image data.
Here's an example how this could look like:
"renderingDefinition": {
"@id": "renderingDef1"
"groups": [
{
"views": ["view1", "view2"],
"name": "Cycle1",
"visible": true
},
{
"views": ["view3"],
"name": "Cycle2",
"visible": true
}
],
"views": [
{
"@id": "view1",
"dimension": [null, 0, null, null, null] // (t,c,z,y,x)
"visible": true,
"mapping": {
"family": "linear",
}
"color": {
"format": "name",
"type": "lut",
"value": "brgbcmyw.lut"
},
"deviceSpaceMapping": {
"reverseIntensity": false
},
"label": "GFP",
"window": {
"end": 188.89093017578125,
"max": 188.89093017578125,
"min": 0.007875712588429451,
"start": 0.007875712588429451
}
},
{
"@id": "view2",
"dimension": [null, 1, null, null, null], // (t,c,z,y,x)
"visible": false,
"color": {
"format": "hex",
"type": "rgb",
"value": "00FF00"
},
"deviceSpaceMapping": {
"reverseIntensity": false
},
"mapping": {
"family": "polynomial", // part of enumeration
"coefficient": 1.5,
"noiseReduction": false,
}
"label": "DAPI",
"window": {
"end": 1542.5789794921875,
"max": 1542.5789794921875,
"min": 0.0,
"start": 0.0
}
},
{
"@id": "view3",
"dimension": [null, 2, null, null, null] // (t,c,z,y,x)
"visible": true,
"color": {
"format": "hex",
"type": "rgb",
"value": "FFFFFF"
},
"deviceSpaceMapping": {
"reverseIntensity": false
},
"mapping": {
"family": "linear",
}
"label": "OOOO",
"window": {
"end": 1555.0537109375,
"max": 1555.0537109375,
"min": 0.0,
"start": 0.0
}
}
],
// e.g. shape is (t,c,z,y,x)
"defaultIndices": [5, null, "10:20", null, null], // default view: t=5 and range 10-20 on z axis
"planarView": [3, 4], // we want to view y,x plane by default
"zoom": 50 // percentage starting from highest resolution
}
RGB example
"renderingDefinition": {
"@id": "renderingDef1"
"groups": [
{
"views": ["view1", "view2", "view3"],
"name": "The name you want to use",
"visible": true,
"metadata": {"rgb": true}
}
],
"views": [
{
"@id": "view1",
"dimension": [null, 0, null, null, null] // (t,c,z,y,x)
"visible": true,
"color": {
"format": "hex",
"type": "rgb",
"value": "FF0000"
},
"label": "Red",
},
{
"@id": "view2",
"dimension": [null, 2, null, null, null] // (t,c,z,y,x)
"visible": true,
"color": {
"format": "hex",
"type": "rgb",
"value": "00FF00"
},
"label": "Green",
},
{
"@id": "view3",
"dimension": [null, 1, null, null, null] // (t,c,z,y,x)
"visible": true,
"color": {
"format": "hex",
"type": "rgb",
"value": "0000FF"
},
"label": "Blue",
},
],
}
Comments, suggestions, etc. welcome!
(Similar issues #36 and #23)
concept like "defaultIndices" and dimension should allow the introduction of new dimension e.g. angle.
The concept of group can be used for example to "combine" channel like RGB, group view for some imaging modalities e.g. CyCIF
renderingDefinition is not mandatory. Currently no fields in renderingDefinition are mandatory.
An image could have multiple renderingDefinition per image
For color: see https://en.wikipedia.org/wiki/List_of_color_palettes and https://colorcet.holoviz.org/
- Support for one
formatonly e.g.hex
List offamily: linear, logarithmic, exponential, polynomial
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the current OMERO metadata specification linked in the issue and compare it with the proposed renderingDefinition examples. Read related issues #36 and #23, then determine the required schema decisions and acceptance criteria; done would mean an agreed rendering-settings specification rather than an illustrative draft.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100