blimpy/file_wrapper.py
def read_data(self, f_start=None, f_stop=None,t_start=None, t_stop=None):
        """ Read data.
        """

        self._setup_selection_range(f_start=f_start, f_stop=f_stop, t_start=t_start, t_stop=t_stop)

        #check if selection is small enough.
        if self.isheavy():
            logger.warning("Selection size of %.2f GB, exceeding our size limit %.2f GB. Instance created, "
                           "header loaded, but data not loaded, please try another (t,v) selection." % (self._calc_selection_size() / (1024. ** 3), self.MAX_DATA_ARRAY_SIZE / (1024. ** 3)))
            self.data = np.array([0],dtype=self._d_type)
            return None

        #Convert input frequencies into what their corresponding channel number would be.
        self._setup_chans()
        #Update frequencies ranges from channel number.
        self._setup_freqs()

        n_chans = self.header[b'nchans']
        n_chans_selected = self.selection_shape[self.freq_axis]
        n_ifs   = self.header[b'nifs']

        # Load binary data
        f = open(self.filename, 'rb')
        f.seek(int(self.idx_data))

        # now check to see how many integrations requested
        n_ints = self.t_stop - self.t_start

        # Seek to first integration
        f.seek(int(self.t_start * self._n_bytes  * n_ifs * n_chans), 1)

        #Loading  data
        self.data = np.zeros((n_ints, n_ifs, n_chans_selected), dtype=self._d_type)

        for ii in range(n_ints):
            for jj in range(n_ifs):
                f.seek(int(self._n_bytes  * self.chan_start_idx), 1) # 1 = from current location
                dd = np.fromfile(f, count=n_chans_selected, dtype=self._d_type)

                # Reverse array if frequency axis is flipped
#                     if self.header[b'foff'] < 0:
#                         dd = dd[::-1]

                self.data[ii, jj] = dd

                f.seek(int(self._n_bytes  * (n_chans - self.chan_stop_idx)), 1)
def read_data(self, f_start=None, f_stop=None,t_start=None, t_stop=None):
        self._setup_selection_range(f_start=f_start, f_stop=f_stop, t_start=t_start, t_stop=t_stop)

        #check if selection is small enough.
        if self.isheavy():
            logger.warning("Selection size of %.2f GB, exceeding our size limit %.2f GB. Instance created, "
                           "header loaded, but data not loaded, please try another (t,v) selection." % (self._calc_selection_size() / (1024. ** 3), self.MAX_DATA_ARRAY_SIZE / (1024. ** 3)))
            self.data = np.array([0],dtype=self._d_type)
            return None

        #Convert input frequencies into what their corresponding channel number would be.
        self._setup_chans()
        #Update frequencies ranges from channel number.
        self._setup_freqs()

        n_chans = self.header[b'nchans']
        n_chans_selected = self.selection_shape[self.freq_axis]
        n_ifs   = self.header[b'nifs']

        # Load binary data
        f = open(self.filename, 'rb')
        f.seek(int(self.idx_data))

        # now check to see how many integrations requested
        n_ints = self.t_stop - self.t_start

        # Seek to first integration
        f.seek(int(self.t_start * self._n_bytes  * n_ifs * n_chans), 1)

        #Loading  data
        self.data = np.zeros((n_ints, n_ifs, n_chans_selected), dtype=self._d_type)

        for ii in range(n_ints):
            for jj in range(n_ifs):
                f.seek(int(self._n_bytes  * self.chan_start_idx), 1) # 1 = from current location
                dd = np.fromfile(f, count=n_chans_selected, dtype=self._d_type)

                # Reverse array if frequency axis is flipped
#                     if self.header[b'foff'] < 0:
#                         dd = dd[::-1]

                self.data[ii, jj] = dd

                f.seek(int(self._n_bytes  * (n_chans - self.chan_stop_idx)), 1)
def read_data ( self , f_start = None , f_stop = None , t_start = None , t_stop = None ) : self . _setup_selection_range ( f_start = f_start , f_stop = f_stop , t_start = t_start , t_stop = t_stop ) #check if selection is small enough. if self . isheavy ( ) : logger . warning ( "Selection size of %.2f GB, exceeding our size limit %.2f GB. Instance created, " "header loaded, but data not loaded, please try another (t,v) selection." % ( self . _calc_selection_size ( ) / ( 1024. ** 3 ) , self . MAX_DATA_ARRAY_SIZE / ( 1024. ** 3 ) ) ) self . data = np . array ( [ 0 ] , dtype = self . _d_type ) return None #Convert input frequencies into what their corresponding channel number would be. self . _setup_chans ( ) #Update frequencies ranges from channel number. self . _setup_freqs ( ) n_chans = self . header [ b'nchans' ] n_chans_selected = self . selection_shape [ self . freq_axis ] n_ifs = self . header [ b'nifs' ] # Load binary data f = open ( self . filename , 'rb' ) f . seek ( int ( self . idx_data ) ) # now check to see how many integrations requested n_ints = self . t_stop - self . t_start # Seek to first integration f . seek ( int ( self . t_start * self . _n_bytes * n_ifs * n_chans ) , 1 ) #Loading  data self . data = np . zeros ( ( n_ints , n_ifs , n_chans_selected ) , dtype = self . _d_type ) for ii in range ( n_ints ) : for jj in range ( n_ifs ) : f . seek ( int ( self . _n_bytes * self . chan_start_idx ) , 1 ) # 1 = from current location dd = np . fromfile ( f , count = n_chans_selected , dtype = self . _d_type ) # Reverse array if frequency axis is flipped #                     if self.header[b'foff'] < 0: #                         dd = dd[::-1] self . data [ ii , jj ] = dd f . seek ( int ( self . _n_bytes * ( n_chans - self . chan_stop_idx ) ) , 1 )
Read data.
Read data .