def parse_type(self, hdat, dataobj=None):
        '''
        Parses the dtype out of the header data or the array, depending on which is given; if both,
          then the header-data overrides the array; if neither, then np.float32.
        '''
        try:    dataobj = dataobj.dataobj
        except Exception: pass
        dtype = np.asarray(dataobj).dtype if dataobj else self.default_type()
        if   hdat and 'type'  in hdat: dtype = np.dtype(hdat['type'])
        elif hdat and 'dtype' in hdat: dtype = np.dtype(hdat['dtype'])
        return dtype
Parses the dtype out of the header data or the array, depending on which is given; if both,
          then the header-data overrides the array; if neither, then np.float32.