pulse2percept.topography.retina.watson2014

Watson2014Map, Watson2014DisplaceMap

Classes

Watson2014DisplaceMap(**kwargs)

Converts between visual angle and retinal eccentricity using RGC displacement [Watson2014]

Watson2014Map(**params)

Converts between visual angle and retinal eccentricity [Watson2014]

class pulse2percept.topography.retina.watson2014.Watson2014Map(**params)[source]

Converts between visual angle and retinal eccentricity [Watson2014]

ret_to_dva(x_um, y_um, coords='cart')[source]

Converts retinal distances (um) to visual angles (deg)

This function converts an eccentricity measurement on the retinal surface(in micrometers), measured from the optic axis, into degrees of visual angle using Eq. A6 in [Watson2014].

Parameters:
  • x_um (double or array-like) – Original x and y coordinates on the retina (microns)

  • y_um (double or array-like) – Original x and y coordinates on the retina (microns)

  • coords ({'cart', 'polar'}) – Whether to return the result in Cartesian or polar coordinates

Returns:

x_dva, y_dva – Transformed x and y coordinates (degrees of visual angle, dva)

Return type:

double or array-like

dva_to_ret(x_deg, y_deg, coords='cart')[source]

Converts visual angles (deg) into retinal distances (um)

This function converts degrees of visual angle into a retinal distance from the optic axis (um) using Eq. A5 in [Watson2014].

Parameters:
  • x_dva (double or array-like) – Original x and y coordinates (degrees of visual angle, dva)

  • y_dva (double or array-like) – Original x and y coordinates (degrees of visual angle, dva)

  • coords ({'cart', 'polar'}) – Whether to return the result in Cartesian or polar coordinates

Returns:

x_ret, y_ret – Transformed x and y coordinates on the retina (microns)

Return type:

double or array-like

from_dva()[source]

Returns a dict containing the region(s) that this visuotopy maps to, and the corresponding mapping function(s).

get_default_params()[source]

Required to inherit from Parametrized

get_param_units()[source]

Return storage units for physical parameters.

Subclasses should extend this mapping. Parameters not listed here take plain dimensionless values.

Added in version 0.10.0.

set_params(**params)[source]

Set the parameters of this object

tissue_unit = um[source]

The unit of the tissue side of the map

to_dva()[source]

Returns a dict containing the region(s) that this visuotopy maps from, and the corresponding inverse mapping function(s). This transform is optional for most models.

visual_unit = dva[source]

The unit of the visual field side of the map

class pulse2percept.topography.retina.watson2014.Watson2014DisplaceMap(**kwargs)[source]

Converts between visual angle and retinal eccentricity using RGC displacement [Watson2014]

Deprecated since version 0.11.0: Use Montesano2020Map, a two-dimensional displacement field.

Converts from eccentricity (defined as distance from a visual center) in degrees of visual angle (dva) to microns on the retina using Eqs. 5, A5, and A6 in [Watson2014].

In a central retinal zone, the retinal ganglion cell (RGC) bodies are displaced centrifugally some distance from the inner segments of the cones to which they are connected through the bipolar cells, and thus from their receptive field. The displacement function is described in Eq. 5 of [Watson2014].

[Watson2014] fits Eq. 5 separately for the nasal and temporal meridian. Specify eye as either 'left' or 'right' for the proper assignment (one is the horizontal mirror of the other). Points on the vertical meridian (x == 0) use the nasal fit, which is a backward-compatible tie-break rather than an anatomical claim.

Each fit applies throughout its retinal hemifield, so a point 45 deg above the horizon is displaced like one on the horizon at the same eccentricity. Kept for reproducing earlier results; ret_to_dva raises NotImplementedError.

Parameters:

eye ({'right', 'left'}, optional) –

Eye whose nasal/temporal displacement functions are used. Case-insensitive on input; stored lowercase. Defaults to 'right'.

Added in version 0.11.0.

property eye

Eye whose nasal and temporal displacement functions are used

get_default_params()[source]

Required to inherit from Parametrized

watson_displacement(r, meridian='temporal')[source]

Ganglion cell displacement function

Implements the ganglion cell displacement function described in Eq. 5 of [Watson2014].

Parameters:
  • r (double|array-like) – Eccentricity in degrees of visual angle (dva)

  • meridian ('temporal' or 'nasal') – Meridian whose fit to apply, elementwise if array-like. Which meridian a visual-field location falls on depends on the eye, but this function does not: it only evaluates the requested fit.

Returns:

  • The displacement in dva experienced by ganglion cells at eccentricity

  • r.

dva_to_ret(xdva, ydva)[source]

Converts dva to retinal coords

Parameters:
  • xdva (double or array-like) – x,y coordinates in dva

  • ydva (double or array-like) – x,y coordinates in dva

Returns:

xret, yret – Corresponding x,y coordinates in microns

Return type:

double or array-like

from_dva()[source]

Returns a dict containing the region(s) that this visuotopy maps to, and the corresponding mapping function(s).

get_param_units()[source]

Return storage units for physical parameters.

Subclasses should extend this mapping. Parameters not listed here take plain dimensionless values.

Added in version 0.10.0.

ret_to_dva(xret, yret)[source]

Converts retinal distances (um) to visual angles (deg)

This function converts an eccentricity measurement on the retinal surface(in micrometers), measured from the optic axis, into degrees of visual angle using Eq. A6 in [Watson2014].

Parameters:
  • x_um (double or array-like) – Original x and y coordinates on the retina (microns)

  • y_um (double or array-like) – Original x and y coordinates on the retina (microns)

  • coords ({'cart', 'polar'}) – Whether to return the result in Cartesian or polar coordinates

Returns:

x_dva, y_dva – Transformed x and y coordinates (degrees of visual angle, dva)

Return type:

double or array-like

set_params(**params)[source]

Set the parameters of this object

tissue_unit = um[source]

The unit of the tissue side of the map

to_dva()[source]

Returns a dict containing the region(s) that this visuotopy maps from, and the corresponding inverse mapping function(s). This transform is optional for most models.

visual_unit = dva[source]

The unit of the visual field side of the map