def _open_file(self):
# only apply _skip property at the beginning of the trajectory
skip = self._data_source._skip[self._itraj] + self.skip if self._t == 0 else 0
nt = self._data_source._skip[self._itraj] + self._data_source._lengths[self._itraj]
# calculate an index set, which rows to skip (includes stride)
skip_rows = np.empty(0)
if skip > 0:
skip_rows = np.zeros(nt)
skip_rows[:skip] = np.arange(skip)
if not self.uniform_stride:
all_frames = np.arange(nt)
skip_rows = np.setdiff1d(all_frames, self.ra_indices_for_traj(self._itraj), assume_unique=True)
elif self.stride > 1:
all_frames = np.arange(nt)
if skip_rows is not None:
wanted_frames = np.arange(skip, nt, self.stride)
else:
wanted_frames = np.arange(0, nt, self.stride)
skip_rows = np.setdiff1d(
all_frames, wanted_frames, assume_unique=True)
self._skip_rows = skip_rows
try:
fh = open(self._data_source.filenames[self._itraj],
mode=self._data_source.DEFAULT_OPEN_MODE)
self._file_handle = fh
except EnvironmentError:
self._logger.exception()
raise
评论列表
文章目录