swh:1:snp:17ebed101f39d813d0d005d8e1ae119375b6ad53
Tip revision: eba94d35d4e5378d00ab7f03e528a24a67474d10 authored by Thierry Emonet on 26 July 2021, 15:16:38 UTC
Add files via upload
Add files via upload
Tip revision: eba94d3
load_data.py
"""
Functions and methods for loading data
Created by Nirag Kadakia at 10:34 11-02-2017
This work is licensed under the
Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License.
To view a copy of this license,
visit http://creativecommons.org/licenses/by-nc-sa/4.0/.
"""
import scipy as sp
import scipy.io as spio
import os.path
import h5py
import time
import pickle
def load_vid_by_frm(subdir, file, frame, bck_sub=True, bck_file = None):
"""
Load a single frame of a flywalk movie from the h5 file.
Args:
subdir: string of directory within mahmut_demir/analysis
file: string of encounter dataset file (-.mat)
frame: int; frame to load
bck_sub: bool; if True, subtract background
Returns:
frm_data: (n, m) array; data for frame.
"""
data_dir = '%s' % (subdir)
vid_file = '%s/%s' % (subdir, file)
assert os.path.isfile(vid_file) == True, "%s not found" % vid_file
with h5py.File(vid_file, 'r') as f:
data_set = f['frames']
frm_data = data_set[frame]
if bck_sub == True:
bck_file = '%s/%s' %(subdir, bck_file)
assert os.path.isfile(bck_file) == True, "%s not found" % bck_file
with h5py.File(bck_file, 'r') as f:
bck_data = f['p']['bkg_img'][:]
mask = f['p']['mask'][:]
zero_idxs = sp.where(frm_data < bck_data)
frm_data -= bck_data
frm_data[zero_idxs] = 0.0
frm_data = frm_data * mask
return frm_data
def load_int_vid_by_frm(subdir, file, frame, bck_sub=True, bck_file = None):
"""
Load a single frame of a flywalk movie from the h5 file.
Args:
subdir: string of directory within mahmut_demir/analysis
file: string of encounter dataset file (-.mat)
frame: int; frame to load
bck_sub: bool; if True, subtract background
Returns:
frm_data: (n, m) array; data for frame.
"""
data_dir = '%s' % (subdir)
vid_file = '%s/%s' % (subdir,file)
#bck_file = '%s.mat' % (file)
assert os.path.isfile(vid_file) == True, "%s not found" % vid_file
with h5py.File(vid_file, 'r') as f:
data_set = f['frames']
frm_data = data_set[frame]
if bck_sub == True:
#bck_file = '%s/%s' %(subdir, bck_file)
#assert os.path.isfile(bck_file) == True, "%s not found" % bck_file
with h5py.File(vid_file, 'r') as f:
bck_data = f['p']['bkg_img'][:]
mask = f['p']['mask'][:]
zero_idxs = sp.where(frm_data < bck_data)
frm_data -= bck_data
frm_data[zero_idxs] = 0.0
frm_data = frm_data * mask
return frm_data
def high_int_load_vid_by_frm(subdir, file, frame, bck_sub=True, bck_file = None):
data_dir = '%s' % (subdir)
vid_file = '%s/%s' % (subdir,file)
with h5py.File(vid_file, 'r') as vid:
data = vid.get('dataset2')
frm_data = data[frame]
frm_data = 200*frm_data
return frm_data