Esempio n. 1
0
# -*- coding: utf-8 -*-
"""
the minimum script to run 10 seconds of black screen
"""

import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(1200, 1920), dis=15., mon_width_cm=52., mon_height_cm=32.)

# Initialize Inicator object
ind = Indicator(mon)

# Initialize DisplaySequence object
ds = DisplaySequence(log_dir='C:/data')

# Initialize UniformContrast object
uc = stim.UniformContrast(monitor=mon, indicator=ind, duration=10., color=-1.)

# set uniform contrast stimulus into the DisplaySequence object
ds.set_stim(uc)

# start display
ds.trigger_display()

# plot distribution of frame duration
plt.show()
ds_display_screen = 0
ds_initial_background_color = 0.
# =================================================================================


# Initialize Monitor object
mon = Monitor(resolution=mon_resolution, dis=mon_dis_cm, mon_width_cm=mon_width_cm, mon_height_cm=mon_height_cm,
              C2T_cm=mon_C2T_cm, C2A_cm=mon_C2A_cm, center_coordinates=mon_center_coordinates,
              downsample_rate=mon_downsample_rate)

# plot warpped monitor coordinates
mon.plot_map()
plt.show()

# initialize Indicator object
ind = Indicator(mon, width_cm=ind_width_cm, height_cm=ind_height_cm, position=ind_position, is_sync=ind_is_sync,
                freq=ind_freq)


# initialize LocallySparseNoise object
lsn = stim.LocallySparseNoise(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                              postgap_dur=postgap_dur, coordinate=coordinate,
                              background=background, subregion=lsn_subregion,
                              grid_space=lsn_grid_space, sign=lsn_sign,
                              probe_size=lsn_probe_size, probe_orientation=lsn_probe_orientation,
                              probe_frame_num=lsn_probe_frame_num, iteration=lsn_iteration,
                              is_include_edge=lsn_is_include_edge, min_distance=lsn_min_distance)

# initialize DisplaySequence object
ds = DisplaySequence(log_dir=ds_log_dir, backupdir=ds_backupdir,
                     identifier=ds_identifier, display_iter=ds_display_iter,
                     mouse_id=ds_mouse_id, user_id=ds_user_id,
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(768, 1360),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)
mon.plot_map()
# Hiding indicator on a "throwaway" monitor
mon_temp = Monitor(resolution=(8, 8),
                   dis=15.,
                   mon_width_cm=10.,
                   mon_height_cm=10.)
ind = Indicator(mon_temp)
ds = DisplaySequence(log_dir='C:/data',
                     is_by_index=False,
                     is_save_sequence=True)
fc = stim.FlashingCircle(monitor=mon,
                         indicator=ind,
                         coordinate='degree',
                         center=(0., 60.),
                         radius=10.,
                         is_smooth_edge=False,
                         smooth_width_ratio=0.2,
                         smooth_func=stim.blur_cos,
                         color=1.,
                         flash_frame_num=60,
                         pregap_dur=2.,
                         postgap_dur=3.,
camera = XimeaCamera(
    config=camcfg
)  # expected_recording_length=stimulus_parameters['repeat_stimulus'] * 90)
camera.start()

mon = Monitor(
    resolution=(1024, 1280),
    dis=20.0,
    mon_width_cm=stimulus_parameters['monitor_width_cm'],
    mon_height_cm=stimulus_parameters['monitor_height_cm'],
    C2T_cm=stimulus_parameters['gaze_center_to_monitor_top_edge_cm'],
    C2A_cm=stimulus_parameters['gaze_center_to_monitor_anterior_edge_cm'],
    visual_field='right',
    downsample_rate=8)  # 20

indicator = Indicator(mon)
'''
KS_stim_all_dir = stim.KSstimAllDir(mon, indicator, sweep_width=stimulus_parameters['sweep_width'], square_size=25,
                                   flicker_frame=6, iteration=1,
                                   step_width=stimulus_parameters['step_width'], pregap_dur=2.,
                                   postgap_dur=3.)  # stepWidth=0.15, # stepWidth*refreshRate=speed, i.e. 0.15 deg *60 = 9 deg/s
'''
ds = DisplaySequence(
    log_dir=r'C:\data',
    display_screen=0,
    backupdir=None,
    display_iter=stimulus_parameters['repeat_stimulus'],
    is_triggered=False,
    is_sync_pulse=False,
    is_by_index=False)  #, interrupt=camera.camera_error_trigger)
# ds.set_stim(KS_stim_all_dir)
Esempio n. 5
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# This script is meant to be used to test the synchronization between the stim. pc and the microscope, by flashing gray images at the sensor

mon = Monitor(resolution=(1024, 1280), dis=20., mon_width_cm=33.28, mon_height_cm=26.624, refresh_rate=60.0)

# creating a monitor object to display the indicator on (since we don' use it)
mon_bin = Monitor(resolution=(0,0), dis=15., mon_width_cm=52., mon_height_cm=32.)
ind = Indicator(mon_bin)

uc = stim.UniformContrast(mon, ind, duration=1, color=0)
repeated_stim = stim.CombinedStimuli(mon, ind, background=-1, pregap_dur=1, postgap_dur=0)
repeated_stim.set_stimuli([uc]*10) # set the number of iterations here

ds = DisplaySequence(log_dir="C:/data", is_by_index=True, display_screen=1, is_sync_pulse_LJ=True)

ds.set_stim(repeated_stim)
ds.trigger_display(fullscr=False)
Esempio n. 6
0
if __name__ == '__main__':
    mon = Monitor(resolution=(600, 800),
                  dis=20.,
                  mon_width_cm=2,
                  mon_height_cm=1.5,
                  refresh_rate=60.0)

    # mon.plot_map()
    # plt.show()

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0),
                      dis=15.,
                      mon_width_cm=52.,
                      mon_height_cm=32.)
    ind = Indicator(mon_bin, width_cm=3, height_cm=3, is_sync=True, freq=1)

    sparse_noise = stim.SparseNoise(mon,
                                    ind,
                                    grid_space=(0.5, 0.5),
                                    probe_size=(0.5, 0.5),
                                    probe_frame_num=6,
                                    coordinate='linear',
                                    midgap_dur=0.5,
                                    iteration=5)

    ds = DisplaySequence(log_dir="data",
                         is_by_index=True,
                         display_screen=1,
                         is_sync_pulse_LJ=False)
Esempio n. 7
0
downsample_rate = 5

# Initialize the monitor and ind objects
mon = Monitor(resolution=resolution,
              dis=dis,
              mon_width_cm=mon_width_cm,
              mon_height_cm=mon_height_cm,
              C2T_cm=C2T_cm,
              C2A_cm=C2A_cm,
              mon_tilt=mon_tilt,
              downsample_rate=downsample_rate)
# mon.plot_map()
# plt.show()
ind = Indicator(mon,
                width_cm=3.,
                height_cm=3.,
                position='northeast',
                is_sync=True,
                freq=1.)
""" Now for the fun stuff! Each block of code below shows an example of
the stimulus routines that are currently implemented in the codebase. Uncomment
each block and run the script to view the stimulus presentations. This is where
you might need to start debugging!
"""
#========================== Uniform Contrast Stimulus =========================
# uniform_contrast = stim.UniformContrast(monitor=mon, indicator=ind, duration=10.,
#                                         color=-1., background=0., pregap_dur=2.,
#                                         postgap_dur=3., coordinate='degree')
# ds = DisplaySequence(log_dir=r'C:\data',
#                      backupdir=None,
#                      display_iter=2,
#                      is_triggered=False,