def face_vmag(hemi, retinotopy='<STR_LIT>', to=None, **ks):
mdat = mag_data(hemi, retinotopy=retinotopy, **kw)<EOL>if pimms.is_vector(mdat): return tuple([face_vmag(m, to=to) for m in mdat])<EOL>elif pimms.is_map(mdat.keys(), '<STR_LIT:int>'):<EOL><INDENT>return pimms.lazy_map({k: curry(lambda k: face_vmag(mdat[k], to=to), k)<EOL>for k in six.iterkeys(mdat)})<EOL><DEDENT>raise NotImplementedError()<EOL>
face_vmag(mesh) yields the visual magnification based on the projection of individual faces on
  the cortical surface into the visual field.
face_vmag(mdat) uses the given magnification data mdat (as returned from mag_data()); if valid
  magnification data is passed then all options related to the mag_data() function are ignored.

All options accepted by mag_data() are accepted by disk_vmag().

The additional optional arguments are also accepted:
  * to (default: None) specifies that the resulting data should be transformed in some way;
    these transformations are:
      * None or 'data': returns the full magnification data without transformation;
      * 'faces': returns a property of the visual magnification value of each face;
      * 'vertices': returns a property of the visual magnification value of each vertex, as
        determined by averaging the magnification