def retinotopic_field_sign(m, element='<STR_LIT>', retinotopy=Ellipsis, invert_field=False):
tsign = _retinotopic_field_sign_triangles(m, retinotopy)<EOL>t = m.tess if isinstance(m, geo.Mesh) or isinstance(m, geo.Topology) else m<EOL>if invert_field: tsign = -tsign<EOL>element = element.lower()<EOL>if element == '<STR_LIT>' or element == '<STR_LIT>': return tsign<EOL>vfs = t.vertex_faces<EOL>vfs = np.asarray([np.mean(tsign[list(ii)]) if len(ii) > <NUM_LIT:0> else <NUM_LIT:0> for ii in vfs])<EOL>return vfs<EOL>
retinotopic_field_sign(mesh) yields a property array of the field sign of every vertex in the 
mesh m; this value may not be exactly 1 (same as VF) or -1 (mirror-image) but some value
in-between; this is because the field sign is calculated exactly (1, 0, or -1) for each triangle
in the mesh then is average onto the vertices. To get only the triangle field signs, use
retinotopic_field_sign(m, 'triangles').

The following options are accepted:
  * element ('vertices') may be 'vertices' to specify that the vertex signs should be returned
    or 'triangles' (or 'faces') to specify that the triangle field signs should be returned.
  * retinotopy (Ellipsis) specifies the retinotopic dataset to be used. If se to 'empirical' or
    'predicted', the retinotopy data is auto-detected from the given categories; if set to
    Ellipsis, a property pair like 'polar_angle' and 'eccentricity' or 'lat' and 'lon' are
    searched for using the as_retinotopy function; otherwise, this may be a retinotopy dataset
    recognizable by as_retinotopy.
  * invert_field (False) specifies that the inverse of the field sign should be returned.