Skip to content

Commit

Permalink
apply yapf and fixing csv reading to be text
Browse files Browse the repository at this point in the history
  • Loading branch information
jodreen committed Nov 19, 2015
1 parent e351ce9 commit e3ef25c
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 12 deletions.
29 changes: 20 additions & 9 deletions code/utils/scene_slicer.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,13 @@
# for i in range(8):
# path_to_images.append("../../" + data_paths['bold_dico_7Tad2grpbold7Tad']['sub1']['runs'][0]['path'])


class SceneSlicer:
def __init__(self, path_to_images, path_to_scene_csv="../../ds113_study_description/stimulus/task001/annotations/scenes.csv"):
def __init__(
self,
path_to_images,
path_to_scene_csv="../../ds113_study_description/stimulus/task001/annotations/scenes.csv"
):
self.path_to_images = path_to_images
self.path_to_scene_csv = path_to_scene_csv
self.images = [0] * len(path_to_images)
Expand All @@ -26,11 +31,14 @@ def __init__(self, path_to_images, path_to_scene_csv="../../ds113_study_descript
self.scene_keys = []

def generate_scene_desc_dict(self):
with open(self.path_to_scene_csv, 'rb') as csvfile:
reader = csv.DictReader(csvfile, fieldnames=['seconds', 'scene', 'day-night', 'int-ext'])
with open(self.path_to_scene_csv, 'rt') as csvfile:
reader = csv.DictReader(
csvfile,
fieldnames=['seconds', 'scene', 'day-night', 'int-ext'])
for row in reader:
scene_time = int(float(row['seconds']))
self.scene_desc[scene_time] = (row['day-night'] == "DAY", row['int-ext'] == "INT")
self.scene_desc[scene_time] = (row['day-night'] == "DAY",
row['int-ext'] == "INT")
self.scene_keys = self.scene_desc.keys()
self.scene_keys.sort()

Expand Down Expand Up @@ -62,12 +70,16 @@ def get_scene_slices(self, run_num):
key_index = i
break
for i in range(img.shape[3]):
if key_index + 1 < len(self.scene_keys) and (i * 2) + scene_start >= self.scene_keys[key_index + 1]:
if key_index + 1 < len(self.scene_keys) and (
i * 2) + scene_start >= self.scene_keys[key_index + 1]:
key_index += 1
curr_time = self.scene_keys[key_index]
day_slices.append(i) if self.scene_desc[curr_time][IS_DAY] else night_slices.append(i)
int_slices.append(i) if self.scene_desc[curr_time][IS_INT] else ext_slices.append(i)
self.scene_slices[run_num] = (day_slices, night_slices, int_slices, ext_slices)
day_slices.append(i) if self.scene_desc[curr_time][
IS_DAY] else night_slices.append(i)
int_slices.append(i) if self.scene_desc[curr_time][
IS_INT] else ext_slices.append(i)
self.scene_slices[run_num] = (day_slices, night_slices, int_slices,
ext_slices)
return self.scene_slices[run_num]

def get_day_night(self, run_num, slice):
Expand All @@ -77,4 +89,3 @@ def get_day_night(self, run_num, slice):
is_day_slice = slice in scene_slices[DAY_IND]
is_int_slice = slice in scene_slices[INT_IND]
return (is_day_slice, is_int_slice)

9 changes: 6 additions & 3 deletions code/utils/tests/test_scene_slicer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@


def test_prepare():
data = np.array([[[[7, 9], [7, 8]], [[1, 2], [1, 8]]],
[[[2, 3], [2, 1]], [[5, 4], [4, 3]]]])
data = np.array([[[[7, 9], [7, 8]], [[1, 2], [1, 8]]], [[[2, 3], [2, 1]],
[[5, 4], [4, 3]]]])
img = nib.Nifti1Image(data, affine=np.diag([1, 1, 1, 1]))
nib.save(img, 'test_data.nii')
with open('scene.csv', 'w') as csvfile:
Expand All @@ -36,6 +36,7 @@ def test_scene_slicer_init():
assert ss.segment_duration == [902, 882, 876, 976, 924, 878, 1086, 673.4]
delete_files()


def test_scene_slicer_dict():
ss = test_prepare()
ss.generate_scene_desc_dict()
Expand All @@ -45,21 +46,23 @@ def test_scene_slicer_dict():
assert ss.scene_desc[i][IS_INT] == 0 or ss.scene_desc[i][IS_INT] == 1
delete_files()


def test_scene_slicer_image():
ss = test_prepare()
ss.get_image(0)
assert ss.images[0] != 0
delete_files()


def test_scene_slicer_slices():
ss = test_prepare()
ss.get_scene_slices(0)
assert ss.scene_slices[0] != 0
delete_files()


def test_scene_slicer_day_night():
ss = test_prepare()
scene_tup = ss.get_day_night(0, 0)
assert scene_tup == (True, False)
delete_files()

0 comments on commit e3ef25c

Please sign in to comment.