def basic_retinotopy_data(hemi, retino_type):
dat = _retinotopy_names[retino_type.lower()]<EOL>val = next((hemi.prop(s) for s in six.iterkeys(hemi.properties) if s.lower() in dat), None)<EOL>if val is None and retino_type.lower() != '<STR_LIT>':<EOL><INDENT>val = predicted_retinotopy_data(hemi, retino_type)<EOL><DEDENT>if val is None and retino_type.lower() != '<STR_LIT>':<EOL><INDENT>val = empirical_retinotopy_data(hemi, retino_type)<EOL><DEDENT>return val<EOL>
basic_retinotopy_data(hemi, t) yields a numpy array of data for the given cortex object hemi
and retinotopy type t; it does this by looking at the properties in hemi and picking out any
combination that is commonly used to denote empirical retinotopy data. These common names are
stored in _predicted_retintopy_names, in order of preference, which may be modified.
The argument t should be one of 'polar_angle', 'eccentricity', 'visual_area', or 'weight'.
Unlike the related functions empirical_retinotopy_data and predicted_retinotopy_data, this
function calls both of these (predicted first then empirical) in the case that it does not
find a valid property.