コード例 #1
0
ファイル: core.py プロジェクト: vanceeasleaf/pyh5md
 def observable(self, obs_name, shape=None, dtype=None, data=None, time=True, unit=None, time_unit=None, **kwargs):
     """Returns observable data as a TimeData object."""
     if "observables" in self.f.keys():
         group = self.f["observables"]
     else:
         group = self.f.create_group("observables")
     if obs_name in self.f["observables"].keys():
         item = group[obs_name]
         if type(item) == h5py.Group:
             assert is_h5md(item)
             return TimeData(group, obs_name)
         elif type(item) == h5py.Dataset:
             assert shape == dtype == data == None
             return FixedData(group, obs_name)
         else:
             raise Exception("obs_name does not provide H5MD data")
     else:
         if time:
             return TimeData(
                 self.f["observables"],
                 obs_name,
                 shape=shape,
                 dtype=dtype,
                 data=data,
                 unit=unit,
                 time_unit=time_unit,
                 **kwargs
             )
         else:
             return FixedData(
                 self.f["observables"], obs_name, shape=shape, dtype=dtype, data=data, unit=unit, **kwargs
             )
コード例 #2
0
ファイル: core.py プロジェクト: khinsen/pyh5md
 def walk(self, g=None):
     if g == None:
         g = self.f['/']
     if type(g) == h5py.Group:
         if is_h5md(g): self.walk_list.append(g)
         for k in g.keys():
             self.walk(g[k])
コード例 #3
0
ファイル: core.py プロジェクト: vanceeasleaf/pyh5md
 def walk(self, g=None):
     if g == None:
         g = self.f["/"]
     if type(g) == h5py.Group:
         if is_h5md(g):
             self.walk_list.append(g)
         for k in g.keys():
             self.walk(g[k])
コード例 #4
0
ファイル: core.py プロジェクト: vanceeasleaf/pyh5md
 def box(self, dimension=None, boundary=None, edges=None, time=False, unit=None, time_unit=None):
     """Creates a box in the particles group. Returns the box group."""
     if dimension is None or boundary is None:
         item = self["box/edges"]
         if type(item) == h5py.Group:
             assert is_h5md(item)
             return TimeData(self["box"], "edges")
         elif type(item) == h5py.Dataset:
             return FixedData(self["box"], "edges")
     return Box(self, dimension, boundary, edges, time, unit, time_unit)
コード例 #5
0
ファイル: core.py プロジェクト: khinsen/pyh5md
 def box(self,
         dimension=None,
         boundary=None,
         edges=None,
         time=False,
         unit=None,
         time_unit=None):
     """Creates a box in the particles group. Returns the box group."""
     if dimension is None or boundary is None:
         item = self['box/edges']
         if type(item) == h5py.Group:
             assert is_h5md(item)
             return TimeData(self['box'], 'edges')
         elif type(item) == h5py.Dataset:
             return FixedData(self['box'], 'edges')
     return Box(self, dimension, boundary, edges, time, unit, time_unit)
コード例 #6
0
ファイル: core.py プロジェクト: vanceeasleaf/pyh5md
def particle_data(group, name=None, shape=None, dtype=None, data=None, time=True, unit=None, time_unit=None, **kwargs):
    """Returns particles data as a FixedData or TimeData."""
    if name is None:
        raise Exception("No name provided")
    if name in group.keys():
        item = group[name]
        if type(item) == h5py.Group:
            assert is_h5md(item)
            return TimeData(group, name)
        elif type(item) == h5py.Dataset:
            assert shape == dtype == data == None
            return FixedData(group, name)
        else:
            raise Exception("name does not provide H5MD data")
    else:
        if time:
            return TimeData(group, name, shape, dtype, data, unit=unit, time_unit=time_unit, **kwargs)
        else:
            return FixedData(group, name, shape, dtype, data, unit=unit, **kwargs)
コード例 #7
0
ファイル: core.py プロジェクト: khinsen/pyh5md
 def observable(self,
                obs_name,
                shape=None,
                dtype=None,
                data=None,
                time=True,
                unit=None,
                time_unit=None,
                **kwargs):
     """Returns observable data as a TimeData object."""
     if 'observables' in self.f.keys():
         group = self.f['observables']
     else:
         group = self.f.create_group('observables')
     if obs_name in self.f['observables'].keys():
         item = group[obs_name]
         if type(item) == h5py.Group:
             assert is_h5md(item)
             return TimeData(group, obs_name)
         elif type(item) == h5py.Dataset:
             assert shape == dtype == data == None
             return FixedData(group, obs_name)
         else:
             raise Exception('obs_name does not provide H5MD data')
     else:
         if time:
             return TimeData(self.f['observables'],
                             obs_name,
                             shape=shape,
                             dtype=dtype,
                             data=data,
                             unit=unit,
                             time_unit=time_unit,
                             **kwargs)
         else:
             return FixedData(self.f['observables'],
                              obs_name,
                              shape=shape,
                              dtype=dtype,
                              data=data,
                              unit=unit,
                              **kwargs)
コード例 #8
0
ファイル: core.py プロジェクト: khinsen/pyh5md
def particle_data(group,
                  name=None,
                  shape=None,
                  dtype=None,
                  data=None,
                  time=True,
                  unit=None,
                  time_unit=None,
                  **kwargs):
    """Returns particles data as a FixedData or TimeData."""
    if name is None:
        raise Exception('No name provided')
    if name in group.keys():
        item = group[name]
        if type(item) == h5py.Group:
            assert is_h5md(item)
            return TimeData(group, name)
        elif type(item) == h5py.Dataset:
            assert shape == dtype == data == None
            return FixedData(group, name)
        else:
            raise Exception('name does not provide H5MD data')
    else:
        if time:
            return TimeData(group,
                            name,
                            shape,
                            dtype,
                            data,
                            unit=unit,
                            time_unit=time_unit,
                            **kwargs)
        else:
            return FixedData(group,
                             name,
                             shape,
                             dtype,
                             data,
                             unit=unit,
                             **kwargs)
コード例 #9
0
ファイル: core.py プロジェクト: vanceeasleaf/pyh5md
 def check(self):
     if len(self.walk_list) == 0:
         raise Exception("Nothing to check")
     for g in self.walk_list:
         assert is_h5md(g)
コード例 #10
0
ファイル: core.py プロジェクト: khinsen/pyh5md
 def check(self):
     if len(self.walk_list) == 0:
         raise Exception('Nothing to check')
     for g in self.walk_list:
         assert (is_h5md(g))