pycortex
pycortex copied to clipboard
Inconsistent handling of nans by WebGL viewer for Vertex vs. VertexRGB objects
We known that NaNs are not handled well by the WebGL viewer for Vertex
objects. However, it seems that the viewer can handle NaNs perfectly fine for RGBVertex
objects. We should investigate this difference and possibly figure out a fix for the Vertex
objects.
Example:
import cortex
import numpy as np
vtx = cortex.Vertex.random("fsaverage")
# get an roi to mask out
roi = cortex.get_roi_verts("fsaverage", roi="IPS0")["IPS0"]
vtx.data[roi] = np.nan
cortex.webgl.show({"vertex": vtx, "rgbvertex": vtx.raw})
produces
Adding a note to myself that
- NaNs in
Vertex
objects are displayed as transparent on quickflat, but not on webgl - NaNs in
VertexRGB
objects are not displayed as transparent on quickflat, but they are on webgl
EDIT: there seems to be an interaction with the dtype (obv. nans cannot be cast to uint8). Still investigating...
#458 should fix the problem with VertexRGB
objects. However, that PR doesn't fix the problem with Vertex
objects. I explored the code for a while, and I think the problem might be in how the JS functions load the data and treat nans. But I'm still unsure about how the JS code works, so we'll have to keep this issue open...