Welcome to pydons’s documentation!¶
Pydons is a collection of manipulation add-ons for hierarchichal numerical data.
MatStruct class¶
MatStruct is an ordered dict with string-only keys, which are accessible also as properties. This makes the notation easier (obj.group.subgroup.variable instead of obj['group']['subgroup']['variable']) and enables IPython’s auto complete.
MatStruct can be serialized to HDF5 or Matlab files using the excellent hdf5storage package.
LazyDataset class¶
A lazy evaluate proxy class for data sets in HDF5 or netCDF4 files.
FileBrowser class¶
FileBrowser employs MatStruct and LazyDataset to enable easy and fast browsing of netCDF4 or HDF5 files.
Examples¶
Items can be added using either [‘keys’] or .properties:
import pydons
import numpy as np
struct = pydons.MatStruct()
struct['string'] = 'A string'
struct.list = ['list', 0, [1, 2]]
struct.numpy = np.random.rand(3,3)
IPython representation is customized:
In [12]: struct
Out[12]:
string: A string
list: ['list', 0, [1, 2]]
numpy: [[ 0.71539338 0.69970494 0.19328026]
[ 0.28645949 0.15262059 0.23362895]
[ 0.14518748 0.79911631 0.22522526]]
MatStruct can be serialized to HDF5 or Matlab files using saveh5 and savemat methods:
In [15]: struct.saveh5('struct.h5')
In [16]: pydons.MatStruct.loadh5('struct.h5')
Out[16]:
list: ['list', 0, [1, 2]]
numpy: [[ 0.71539338 0.69970494 0.19328026]
[ 0.28645949 0.15262059 0.23362895]
[ 0.14518748 0.79911631 0.22522526]]
string: A string
(the field order is not maintained—to be fixed soon).
This software is distributed under the MIT license (see the LICENSE file).
Reference¶
Pydons is a collection of manipulation add-ons for hierarchichal numerical data.
- class pydons.FileBrowser(file_name, lazy_min_size=100, lazy_max_size=100000000)¶
Load netCDF of HDF5 file into an offline MatStruct
- class pydons.LazyDataset(grp, name, lazy_min_size=100, lazy_max_size=100000000)¶
NetCDF 4 / HDF5 data set object with lazy evaluation
- class pydons.MatStruct(*args, **kwargs)¶
Matlab-like struct container
Features:
- Get and set fields as properties (obj.field = )
- String-only fields
- Save and load to/from Matlab-compatible HDF5 files
- Ipython customized output
- diff(other, **kwargs)¶
Find numerical differences to another MatStruct, ignoring the keys order
Returns a structure with diff_norm = average norm of all numerical differences, diff_max = maximum of norm differences, diff_uncomparable = number of uncomparable fields.
Parameters: other – MatStruct object to compare to Keyword arguments
Parameters: - norm – norm function, default is numpy.linalg.norm
- rel_norm_thold – relative difference threshold above which relative difference is normalized by the norm of the field value
- insert_after(existing_key, key, value)¶
Insert after an existing field
Parameters: - existing_key – existing key
- key – new key
- value – inserted value
- insert_before(existing_key, key, value)¶
Insert before an existing field
Parameters: - existing_key – existing key
- key – new key
- value – inserted value
- classmethod loadh5(file_name, path='/', matlab_compatible=False, **kwargs)¶
Load from an HDF5 file
Parameters: - file_name – file name
- path – path toread data from
- classmethod loadmat(file_name, path='/', **kwargs)¶
Load from a Matlab (HDF5 format) file
Parameters: - file_name – file name
- path – path toread data from
- merge(other)¶
Merge fields form another MatStruct or any dict-like object
Parameters: other – object to merge from
- saveh5(file_name, path='/', truncate_existing=False, matlab_compatible=False, **kwargs)¶
Save to an HDF5 file
Parameters: - file_name – output file name
- path – group path to store fields to
- savemat(file_name, path='/', truncate_existing=False, **kwargs)¶
Save to a Matlab (HDF5 format) file
Parameters: - file_name – output file name
- path – group path to store fields to