def prepare_mapped_sensors_as_measure_points_params(project_id, sensors, eeg_cap=None): """ Compute sensors positions by mapping them to the ``eeg_cap`` surface If ``eeg_cap`` is not specified the mapping will use a default EEGCal DataType in current project. If no default EEGCap is found, return sensors as they are (not projected) :returns: dictionary to be used in Viewers for rendering measure_points :rtype: dict """ if eeg_cap is None: eeg_cap = dao.get_values_of_datatype(project_id, EEGCap, page_size=1)[0] if eeg_cap: eeg_cap = ABCDisplayer.load_entity_by_gid(eeg_cap[-1][2]) if eeg_cap: datatype_kwargs = json.dumps({'surface_to_map': eeg_cap.gid}) sensor_locations = ABCDisplayer.paths2url( sensors, 'sensors_to_surface') + '/' + datatype_kwargs sensor_no = sensors.number_of_sensors sensor_labels = ABCDisplayer.paths2url(sensors, 'labels') return { 'urlMeasurePoints': sensor_locations, 'urlMeasurePointsLabels': sensor_labels, 'noOfMeasurePoints': sensor_no, 'minMeasure': 0, 'maxMeasure': sensor_no, 'urlMeasure': '' } return prepare_sensors_as_measure_points_params(sensors)
def get_shell_surface_urls(shell_surface=None, project_id=0): if shell_surface is None: shell_surface = dao.get_values_of_datatype(project_id, FaceSurface)[0] if not shell_surface: raise Exception('No face object found in database.') shell_surface = ABCDisplayer.load_entity_by_gid(shell_surface[0][2]) face_vertices, face_normals, _, face_triangles = shell_surface.get_urls_for_rendering() return json.dumps([face_vertices, face_normals, face_triangles])
def prepare_shell_surface_urls(project_id, shell_surface=None): if shell_surface is None: shell_surface = dao.get_values_of_datatype(project_id, FaceSurface, page_size=1)[0] if not shell_surface: raise Exception('No Face object found in current project.') shell_surface = ABCDisplayer.load_entity_by_gid(shell_surface[0][2]) face_vertices, face_normals, _, face_triangles = shell_surface.get_urls_for_rendering( ) return json.dumps([face_vertices, face_normals, face_triangles])
def compute_sensor_surfacemapped_measure_points(project_id, sensors, eeg_cap=None): """ Compute sensors positions by mapping them to the ``eeg_cap`` surface If ``eeg_cap`` is not specified the mapping will use a default. It returns a url from where to fetch the positions If no default is available it returns None :returns: measure points, measure points labels, measure points number :rtype: tuple """ if eeg_cap is None: eeg_cap = dao.get_values_of_datatype(project_id, EEGCap)[0] if eeg_cap: eeg_cap = ABCDisplayer.load_entity_by_gid(eeg_cap[-1][2]) if eeg_cap: datatype_kwargs = json.dumps({'surface_to_map': eeg_cap.gid}) measure_points = ABCDisplayer.paths2url(sensors, 'sensors_to_surface') + '/' + datatype_kwargs measure_points_no = sensors.number_of_sensors measure_points_labels = ABCDisplayer.paths2url(sensors, 'labels') return measure_points, measure_points_labels, measure_points_no