There is this info:

```
>>> import mne
>>> src = mne.read_source_spaces(mne.datasets.sample.data_path() / 'subjects' / 'fsaverage' / 'bem' / 'fsaverage-ico-5-src.fif', patch_stats=True)
>>> src[0].keys()
dict_keys(['id', 'type', 'np', 'ntri', 'coord_frame', 'rr', 'nn', 'tris', 'nuse', 'inuse', 'vertno', 'nuse_tri', 'use_tris', 'nearest', 'nearest_dist', 'pinfo', 'patch_inds', 'dist', 'dist_limit', 'subject_his_id', 'tri_area', 'tri_cent', 'tri_nn', 'use_tri_cent', 'use_tri_nn', 'use_tri_area'])
>>> src[0]["use_tri_area"].shape
(20480,)
>>> src[0]["use_tris"].shape
(20480, 3)
```

So this could get you the surface area per triangle in the decimated space. But you want it per *vertex* not per *triangle*.

Really the āsurface area per sourceā can be thought of as ātotal surface area / total number of sourcesā. So looking at it that way, you could calculate it as:

```
sum(s["tri_area"].sum() for s in src) / sum(s['nuse'] for s in src) * 1e6
6.367790682029399
```

The `* 1e6`

is a conversion from āsources per square mā to sources per square mm". For an `oct-6`

for example youād get:

```
>>> src = mne.read_source_spaces(mne.datasets.sample.data_path() / 'subjects' / 'sample' / 'bem' / 'sample-oct-6-src.fif', patch_stats=True)
>>> sum(s["use_tri_area"].sum() for s in src) / sum(s['nuse'] for s in src) * 1e6
20.69581503362706
```

Iām not sure why the value for the ico-5 doesnāt match, assuming that manual entry is for `fsaverage`

(because it will vary by subject). Even that for `sample`

wouldnāt be 9.8:

```
>>> sum(s["use_tri_area"].sum() for s in src) / 20484 * 1e6
8.280750830677961
```