Esempio n. 1
0
 def testDropNewNxdata(self):
     data = numpy.array([[[5]]])
     nxdata = commonh5.Group("foo")
     nxdata.attrs["NX_class"] = "NXdata"
     nxdata.attrs["signal"] = "signal"
     nxdata.create_dataset("signal", data=data)
     mimedata = Hdf5DatasetMimeData(dataset=nxdata)
     self.model.dropMimeData(mimedata, qt.Qt.CopyAction, -1, -1, qt.QModelIndex())
     self.assertEqual(self.model.rowCount(qt.QModelIndex()), 2)
Esempio n. 2
0
 def testCreateNxdataFromNxdata(self):
     widget = CustomNxdataWidget()
     model = widget.model()
     data = numpy.array([[[5]]])
     nxdata = commonh5.Group("foo")
     nxdata.attrs["NX_class"] = "NXdata"
     nxdata.attrs["signal"] = "signal"
     nxdata.create_dataset("signal", data=data)
     model.createFromNxdata(nxdata)
     widget.setVisible(True)
     self.qWaitForWindowExposed(widget)
Esempio n. 3
0
    def createVirtualGroup(self):
        """Returns a new virtual Group using a NeXus NXdata structure to store
        data

        :rtype: silx.io.commonh5.Group
        """
        name = ""
        if self.__title is not None:
            name = self.__title
        virtual = commonh5.Group(name)
        virtual.attrs["NX_class"] = "NXdata"

        if self.__title is not None:
            virtual.attrs["title"] = self.__title

        if self.__signal is not None:
            signal = self.__signal.getDataset()
            if signal is not None:
                # Could be done using a link instead of a copy
                node = commonh5.DatasetProxy("signal", target=signal)
                virtual.attrs["signal"] = "signal"
                virtual.add_node(node)

        axesAttr = []
        for i, axis in enumerate(self.__axes):
            if axis is None:
                name = "."
            else:
                axis = axis.getDataset()
                if axis is None:
                    name = "."
                else:
                    name = "axis%d" % i
                    node = commonh5.DatasetProxy(name, target=axis)
                    virtual.add_node(node)
            axesAttr.append(name)

        if axesAttr != []:
            virtual.attrs["axes"] = numpy.array(axesAttr)

        validator = silx.io.nxdata.NXdata(virtual)
        if not validator.is_valid:
            message = "<html>"
            message += "This NXdata is not consistant"
            message += "<ul>"
            for issue in validator.issues:
                message += "<li>%s</li>" % issue
            message += "</ul>"
            message += "</html>"
            self.__setError(message)
        else:
            self.__setError(None)
        return virtual
Esempio n. 4
0
def create_NXentry(group, name):
    attrs = {"NX_class": "NXentry"}
    node = commonh5.Group(name, parent=group, attrs=attrs)
    group.add_node(node)
    return node