stimupy.stimuli.gratings#

Demos#

Functions#

sinewave

Linear (horizontal, vertical, oblique) sine-wave grating, with some phase(s) as target(s)

squarewave

Linear (horizontal, vertical, oblique) square-wave grating (set of bars), with some bar(s) as target(s)

on_uniform

Spatial square-wave grating (set of bars), on a uniform background

on_grating

Small grating on a larger grating

on_grating_masked

Small grating, with a parallelogram-like shape, on a larger grating

phase_shifted

grating_induction

Grating induction illusion using a sinewave grating

grating_induction_blur

Grating induction illusion using a blurred square-wave grating

sinewave(visual_size=None, ppd=None, shape=None, frequency=None, n_bars=None, bar_width=None, period='ignore', rotation=0.0, phase_shift=0, intensities=(0.0, 1.0), target_indices=(), intensity_target=0.5, origin='corner', round_phase_width=True)#

Linear (horizontal, vertical, oblique) sine-wave grating, with some phase(s) as target(s)

Parameters:
  • visual_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of image, in degrees

  • ppd (Sequence[Number, Number], Number, or None (default)) – pixels per degree [vertical, horizontal]

  • shape (Sequence[Number, Number], Number, or None (default)) – shape [height, width] of image, in pixels

  • frequency (Number, or None (default)) – spatial frequency of grating, in cycles per degree visual angle

  • n_bars (int, or None (default)) – number of bars in the grating

  • bar_width (Number, or None (default)) – width of a single bar, in degrees visual angle

  • period ("even", "odd", "either" or "ignore" (default)) – ensure whether the grating has “even” number of phases, “odd” number of phases, either or whether not to round the number of phases (“ignore”)

  • rotation (float, optional) – rotation (in degrees), counterclockwise, by default 0.0 (horizontal)

  • phase_shift (float) – phase shift of grating in degrees

  • intensities (Sequence[float, float] or None (default)) – min and max intensity of sine-wave

  • target_indices (int, or Sequence[int, ...]) – indices segments where targets will be placed

  • intensity_target (float, or Sequence[float, ...], optional) – intensity value for each target, by default 0.5. Can specify as many intensities as number of target_indices; If fewer intensities are passed than target_indices, cycles through intensities

  • origin ("corner", "mean" or "center") – if “corner”: set origin to upper left corner (default) if “mean”: set origin to hypothetical image center if “center”: set origin to real center (closest existing value to mean)

  • round_phase_width (Bool) – if True, round width of bars given resolution

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

squarewave(visual_size=None, ppd=None, shape=None, frequency=None, n_bars=None, bar_width=None, period='ignore', rotation=0.0, phase_shift=0, intensity_bars=(0.0, 1.0), target_indices=(), intensity_target=0.5, origin='corner', round_phase_width=True)#

Linear (horizontal, vertical, oblique) square-wave grating (set of bars), with some bar(s) as target(s)

Parameters:
  • visual_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of image, in degrees

  • ppd (Sequence[Number, Number], Number, or None (default)) – pixels per degree [vertical, horizontal]

  • shape (Sequence[Number, Number], Number, or None (default)) – shape [height, width] of image, in pixels

  • frequency (Number, or None (default)) – spatial frequency of grating, in cycles per degree visual angle

  • n_bars (int, or None (default)) – number of bars in the grating

  • bar_width (Number, or None (default)) – width of a single bar, in degrees visual angle

  • period ("even", "odd", "either" or "ignore" (default)) – ensure whether the grating has “even” number of phases, “odd” number of phases, either or whether not to round the number of phases (“ignore”)

  • rotation (float, optional) – rotation (in degrees), counterclockwise, by default 0.0 (horizontal)

  • phase_shift (float) – phase shift of grating in degrees

  • intensity_bars (Sequence[float, ...]) – intensity value for each bar, by default (1.0, 0.0). Can specify as many intensities as n_bars; If fewer intensities are passed than n_bars, cycles through intensities

  • target_indices (int, or Sequence[int, ...]) – indices segments where targets will be placed

  • intensity_target (float, or Sequence[float, ...], optional) – intensity value for each target, by default 0.5. Can specify as many intensities as number of target_indices; If fewer intensities are passed than target_indices, cycles through intensities

  • origin ("corner", "mean" or "center") – if “corner”: set origin to upper left corner (default) if “mean”: set origin to hypothetical image center if “center”: set origin to real center (closest existing value to mean)

  • round_phase_width (Bool) – if True, round width of bars given resolution

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

on_uniform(visual_size=None, ppd=None, shape=None, grating_size=None, frequency=None, n_bars=None, bar_width=None, period='ignore', rotation=0.0, phase_shift=0, intensity_bars=(0.0, 1.0), target_indices=(), intensity_target=0.5, intensity_background=0.5, origin='corner', round_phase_width=True)[source]#

Spatial square-wave grating (set of bars), on a uniform background

Parameters:
  • visual_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of image, in degrees

  • ppd (Sequence[Number, Number], Number, or None (default)) – pixels per degree [vertical, horizontal]

  • shape (Sequence[Number, Number], Number, or None (default)) – shape [height, width] of image, in pixels

  • grating_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of grating, in degrees

  • frequency (Number, or None (default)) – spatial frequency of grating, in cycles per degree visual angle

  • n_bars (int, or None (default)) – number of bars in the grating

  • bar_width (Number, or None (default)) – width of a single bar, in degrees visual angle

  • period ("even", "odd", "either" or "ignore" (default)) – ensure whether the grating has “even” number of phases, “odd” number of phases, either or whether not to round the number of phases (“ignore”)

  • rotation (float, optional) – rotation (in degrees), counterclockwise, by default 0.0 (horizontal)

  • phase_shift (float) – phase shift of grating in degrees

  • intensity_bars (Sequence[float, ...]) – intensity value for each bar, by default (1.0, 0.0). Can specify as many intensities as n_bars; If fewer intensities are passed than n_bars, cycles through intensities

  • target_indices (int, or Sequence[int, ...]) – indices segments where targets will be placed

  • intensity_target (float, or Sequence[float, ...], optional) – intensity value for each target, by default 0.5. Can specify as many intensities as number of target_indices; If fewer intensities are passed than target_indices, cycles through intensities

  • float (intensity_background =) – intensity value of background

  • origin ("corner", "mean" or "center") – if “corner”: set origin to upper left corner (default) if “mean”: set origin to hypothetical image center if “center”: set origin to real center (closest existing value to mean)

  • round_phase_width (Bool) – if True, round width of bars given resolution

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

References

White, M. (1981).

The effect of the nature of the surround on the perceived lightness of grey bars within square-wave test grating. Perception, 10, 215-230. https://doi.org/10.1068/p100215

on_grating(small_grating_params, large_grating_params)[source]#

Small grating on a larger grating

Parameters:
  • small_grating_params (dict) – kwargs to generate small grating

  • large_grating_params (dict) – kwargs to generate larger grating

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

References

White, M. (1981).

The effect of the nature of the surround on the perceived lightness of grey bars within square-wave test grating. Perception, 10, 215-230. https://doi.org/10.1068/p100215

on_grating_masked(small_grating_params, large_grating_params, mask_size=None, mask_rotation=None)[source]#

Small grating, with a parallelogram-like shape, on a larger grating

Parameters:
  • small_grating_params (dict) – kwargs to generate small grating

  • large_grating_params (dict) – kwargs to generate larger grating

  • mask_size (Sequence[Number, Number, Number], Sequence[Number, Number], Number or None (default)) – size (height, width, depth) of parallelogram-like mask in degrees visual angle

  • mask_rotation (float) – rotation of the mask in degree

Returns:

dict with the stimulus (key: “img”), mask with integer index for each bar (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

References

White, M. (1981).

The effect of the nature of the surround on the perceived lightness of grey bars within square-wave test grating. Perception, 10, 215-230. https://doi.org/10.1068/p100215

grating_induction(visual_size=None, ppd=None, shape=None, frequency=None, n_bars=None, bar_width=None, period='ignore', rotation=0.0, phase_shift=0, intensities=(0.0, 1.0), target_width=None, intensity_target=0.5, origin='corner')[source]#

Grating induction illusion using a sinewave grating

Parameters:
  • visual_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of image, in degrees

  • ppd (Sequence[Number, Number], Number, or None (default)) – pixels per degree [vertical, horizontal]

  • shape (Sequence[Number, Number], Number, or None (default)) – shape [height, width] of image, in pixels

  • frequency (Number, or None (default)) – spatial frequency of grating, in cycles per degree visual angle

  • n_bars (int, or None (default)) – number of bars in the grating

  • bar_width (Number, or None (default)) – width of a single bar, in degrees visual angle

  • period ("even", "odd", "either" or "ignore" (default)) – ensure whether the grating has “even” number of phases, “odd” number of phases, either or whether not to round the number of phases (“ignore”)

  • rotation (float, optional) – rotation (in degrees), counterclockwise, by default 0.0 (horizontal)

  • phase_shift (float) – phase shift of grating in degrees

  • intensity_bars (Sequence[float, ...]) – intensity value for each bar, by default (1.0, 0.0). Can specify as many intensities as n_bars; If fewer intensities are passed than n_bars, cycles through intensities

  • target_width (float) – width of target stripe in degrees visual angle

  • intensities (Sequence[float, float] or None (default)) – min and max intensity of sinewave

  • origin ("corner", "mean" or "center") – if “corner”: set origin to upper left corner (default) if “mean”: set origin to hypothetical image center if “center”: set origin to real center (closest existing value to mean)

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

References

McCourt, M. E. (1982).

A spatial frequency dependent grating-induction effect. Vision Research, 22, 119-134. https://doi.org/10.1016/0042-6989(82)90173-0

grating_induction_blur(visual_size=None, ppd=None, shape=None, frequency=None, n_bars=None, bar_width=None, period='ignore', rotation=0.0, phase_shift=0, intensity_bars=(0.0, 1.0), target_width=None, sigma=None, intensity_target=0.5, origin='corner')[source]#

Grating induction illusion using a blurred square-wave grating

Parameters:
  • visual_size (Sequence[Number, Number], Number, or None (default)) – visual size [height, width] of image, in degrees

  • ppd (Sequence[Number, Number], Number, or None (default)) – pixels per degree [vertical, horizontal]

  • shape (Sequence[Number, Number], Number, or None (default)) – shape [height, width] of image, in pixels

  • frequency (Number, or None (default)) – spatial frequency of grating, in cycles per degree visual angle

  • n_bars (int, or None (default)) – number of bars in the grating

  • bar_width (Number, or None (default)) – width of a single bar, in degrees visual angle

  • period ("even", "odd", "either" or "ignore" (default)) – ensure whether the grating has “even” number of phases, “odd” number of phases, either or whether not to round the number of phases (“ignore”)

  • rotation (float, optional) – rotation (in degrees), counterclockwise, by default 0.0 (horizontal)

  • phase_shift (float) – phase shift of grating in degrees

  • intensity_bars (Sequence[float, ...]) – intensity value for each bar, by default (1.0, 0.0). Can specify as many intensities as n_bars; If fewer intensities are passed than n_bars, cycles through intensities

  • target_width (float) – width of target stripe in degrees visual angle

  • target_blur (float) – amount of Gaussian blur to blur square-wave grating (default: 0)

  • intensity_target (float, or Sequence[float, ...], optional) – intensity value for each target, by default 0.5. Can specify as many intensities as number of target_indices; If fewer intensities are passed than target_indices, cycles through intensities

  • origin ("corner", "mean" or "center") – if “corner”: set origin to upper left corner (default) if “mean”: set origin to hypothetical image center if “center”: set origin to real center (closest existing value to mean)

Returns:

dict with the stimulus (key: “img”), mask with integer index for each target (key: “target_mask”), and additional keys containing stimulus parameters

Return type:

dict[str, Any]

References

McCourt, M. E. (1982).

A spatial frequency dependent grating-induction effect. Vision Research, 22, 119-134. https://doi.org/10.1016/0042-6989(82)90173-0