Smoothing Surface data

I’m a new nilearn user and have appreciated the beautiful API and documentation. But one thing that I can’t seem to find is functions to smooth surface based data. Is there an analogous function to
For smoothing values along the surface?

Hi @jyeatman

The surface module of Nilearn is relatively new and there are still a limited number of functionalities to interact with surface data compared with volumes.
Unless I am missing something, there is no straightforward way to do that in Nilearn. You’d have to either write your own smoothing function, or smooth a volume image and project it on the surface (see nilearn.surface.vol_to_surf), which is very far from ideal and assumes that you have a volume image to start with…

I will bring this point up at the next Nilearn core-developer meeting happening on Monday.


I think this would be a great new feature because then nilearn would have a full pipeline for volume or surface analysis. We use fmriprep to preprocess our data sampled onto either fsaverage or native. Looking at the surface data structures in nilearn it looks like everything is there to implement surface smoothing

@jyeatman We discussed this during our Nilearn meeting on Monday and agreed that this would be a useful addition to Nilearn.
We are still unsure about how to implement this in a way that would be “simple, fast, and accurate” though.
I opened this issue to see what people think about this feature and gather possible implementation ideas.
Feel free to comment if you have some thoughts to share.