Added dataset transpose option
This commit is contained in:
parent
e62a6ae9b3
commit
0523ebab05
|
@ -76,7 +76,7 @@ class Dataset:
|
||||||
"""Return the identifers along the dimension dim."""
|
"""Return the identifers along the dimension dim."""
|
||||||
return self._map[dim]
|
return self._map[dim]
|
||||||
|
|
||||||
def _create_identifiers(self,shape,all_dims):
|
def _create_identifiers(self, shape, all_dims):
|
||||||
"""Creates dimension names and identifier names, and returns
|
"""Creates dimension names and identifier names, and returns
|
||||||
identifiers."""
|
identifiers."""
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ class Dataset:
|
||||||
if type(axis)==int:
|
if type(axis)==int:
|
||||||
return self._dims[axis]
|
return self._dims[axis]
|
||||||
else:
|
else:
|
||||||
return [dim for dim in self]
|
return [dim for dim in self._dims]
|
||||||
|
|
||||||
def common_dims(self, ds):
|
def common_dims(self, ds):
|
||||||
"""Returns a list of the common dimensions in the two datasets."""
|
"""Returns a list of the common dimensions in the two datasets."""
|
||||||
|
@ -220,6 +220,19 @@ class Dataset:
|
||||||
"""
|
"""
|
||||||
return copy.deepcopy(self)
|
return copy.deepcopy(self)
|
||||||
|
|
||||||
|
def transpose(self):
|
||||||
|
"""Returns a copy of transpose of a dataset.
|
||||||
|
|
||||||
|
As for the moment: only support for 2D-arrays.
|
||||||
|
"""
|
||||||
|
|
||||||
|
#assert(self._array==ndarray)
|
||||||
|
ds = self.copy()
|
||||||
|
ds._array = ds._array.T
|
||||||
|
ds._dims.reverse()
|
||||||
|
ds.shape = ds._array.shape
|
||||||
|
return ds
|
||||||
|
|
||||||
def _validate_identifiers(self, identifiers):
|
def _validate_identifiers(self, identifiers):
|
||||||
|
|
||||||
for dim_name, ids in identifiers:
|
for dim_name, ids in identifiers:
|
||||||
|
|
|
@ -198,6 +198,11 @@ class NavigatorMenu(gtk.Menu):
|
||||||
self.append(self.save_item)
|
self.append(self.save_item)
|
||||||
self.save_item.show()
|
self.save_item.show()
|
||||||
|
|
||||||
|
self.trans_item = gtk.MenuItem('Transpose')
|
||||||
|
self.trans_item.connect('activate', self.on_transpose, navigator)
|
||||||
|
self.append(self.trans_item)
|
||||||
|
self.trans_item.show()
|
||||||
|
|
||||||
# Build plot menu
|
# Build plot menu
|
||||||
self.plot_menu = gtk.Menu()
|
self.plot_menu = gtk.Menu()
|
||||||
|
|
||||||
|
@ -287,3 +292,8 @@ class NavigatorMenu(gtk.Menu):
|
||||||
plot.set_selection_listener(project.set_selection)
|
plot.set_selection_listener(project.set_selection)
|
||||||
project._selection_observers.append(plot)
|
project._selection_observers.append(plot)
|
||||||
|
|
||||||
|
def on_transpose(self, item, navigator):
|
||||||
|
project = main.project
|
||||||
|
ds = self.dataset.transpose()
|
||||||
|
icon = fluents.icon_factory.get("dataset")
|
||||||
|
project.data_tree_insert(self.tree_iter, self.dataset.get_name()+".T", ds, None, "black", icon)
|
||||||
|
|
Reference in New Issue