Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sascalc/dataloader/manipulations.py

    rdd11014 r9a5097c  
    1414#TODO: copy the meta data from the 2D object to the resulting 1D object 
    1515import math 
    16 import numpy 
     16import numpy as np 
    1717 
    1818#from data_info import plottable_2D 
     
    8080 
    8181    """ 
    82     if data2d.data is None or data2d.x_bins is None or data2d.y_bins is None: 
     82    if data2d.data == None or data2d.x_bins == None or data2d.y_bins == None: 
    8383        raise ValueError, "Can't convert this data: data=None..." 
    84     new_x = numpy.tile(data2d.x_bins, (len(data2d.y_bins), 1)) 
    85     new_y = numpy.tile(data2d.y_bins, (len(data2d.x_bins), 1)) 
     84    new_x = np.tile(data2d.x_bins, (len(data2d.y_bins), 1)) 
     85    new_y = np.tile(data2d.y_bins, (len(data2d.x_bins), 1)) 
    8686    new_y = new_y.swapaxes(0, 1) 
    8787 
     
    8989    qx_data = new_x.flatten() 
    9090    qy_data = new_y.flatten() 
    91     q_data = numpy.sqrt(qx_data * qx_data + qy_data * qy_data) 
    92     if data2d.err_data is None or numpy.any(data2d.err_data <= 0): 
    93         new_err_data = numpy.sqrt(numpy.abs(new_data)) 
     91    q_data = np.sqrt(qx_data * qx_data + qy_data * qy_data) 
     92    if data2d.err_data == None or np.any(data2d.err_data <= 0): 
     93        new_err_data = np.sqrt(np.abs(new_data)) 
    9494    else: 
    9595        new_err_data = data2d.err_data.flatten() 
    96     mask = numpy.ones(len(new_data), dtype=bool) 
     96    mask = np.ones(len(new_data), dtype=bool) 
    9797 
    9898    #TODO: make sense of the following two lines... 
     
    149149 
    150150        # Get data 
    151         data = data2D.data[numpy.isfinite(data2D.data)] 
    152         err_data = data2D.err_data[numpy.isfinite(data2D.data)] 
    153         qx_data = data2D.qx_data[numpy.isfinite(data2D.data)] 
    154         qy_data = data2D.qy_data[numpy.isfinite(data2D.data)] 
     151        data = data2D.data[np.isfinite(data2D.data)] 
     152        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     153        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     154        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    155155 
    156156        # Build array of Q intervals 
     
    170170            raise RuntimeError, "_Slab._avg: unrecognized axis %s" % str(maj) 
    171171 
    172         x = numpy.zeros(nbins) 
    173         y = numpy.zeros(nbins) 
    174         err_y = numpy.zeros(nbins) 
    175         y_counts = numpy.zeros(nbins) 
     172        x = np.zeros(nbins) 
     173        y = np.zeros(nbins) 
     174        err_y = np.zeros(nbins) 
     175        y_counts = np.zeros(nbins) 
    176176 
    177177        # Average pixelsize in q space 
     
    225225        y = y / y_counts 
    226226        x = x / y_counts 
    227         idx = (numpy.isfinite(y) & numpy.isfinite(x)) 
     227        idx = (np.isfinite(y) & np.isfinite(x)) 
    228228 
    229229        if not idx.any(): 
     
    304304            raise RuntimeError, msg 
    305305        # Get data 
    306         data = data2D.data[numpy.isfinite(data2D.data)] 
    307         err_data = data2D.err_data[numpy.isfinite(data2D.data)] 
    308         qx_data = data2D.qx_data[numpy.isfinite(data2D.data)] 
    309         qy_data = data2D.qy_data[numpy.isfinite(data2D.data)] 
     306        data = data2D.data[np.isfinite(data2D.data)] 
     307        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     308        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     309        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    310310 
    311311        y = 0.0 
     
    414414        """ 
    415415        # Get data W/ finite values 
    416         data = data2D.data[numpy.isfinite(data2D.data)] 
    417         q_data = data2D.q_data[numpy.isfinite(data2D.data)] 
    418         err_data = data2D.err_data[numpy.isfinite(data2D.data)] 
    419         mask_data = data2D.mask[numpy.isfinite(data2D.data)] 
     416        data = data2D.data[np.isfinite(data2D.data)] 
     417        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     418        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     419        mask_data = data2D.mask[np.isfinite(data2D.data)] 
    420420 
    421421        dq_data = None 
     
    448448            dq_overlap_y *= dq_overlap_y 
    449449 
    450             dq_overlap = numpy.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
     450            dq_overlap = np.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
    451451            # Final protection of dq 
    452452            if dq_overlap < 0: 
    453453                dq_overlap = y_min 
    454             dqx_data = data2D.dqx_data[numpy.isfinite(data2D.data)] 
    455             dqy_data = data2D.dqy_data[numpy.isfinite(data2D.data)] - dq_overlap 
     454            dqx_data = data2D.dqx_data[np.isfinite(data2D.data)] 
     455            dqy_data = data2D.dqy_data[np.isfinite(data2D.data)] - dq_overlap 
    456456            # def; dqx_data = dq_r dqy_data = dq_phi 
    457457            # Convert dq 2D to 1D here 
    458458            dqx = dqx_data * dqx_data 
    459459            dqy = dqy_data * dqy_data 
    460             dq_data = numpy.add(dqx, dqy) 
    461             dq_data = numpy.sqrt(dq_data) 
    462  
    463         #q_data_max = numpy.max(q_data) 
     460            dq_data = np.add(dqx, dqy) 
     461            dq_data = np.sqrt(dq_data) 
     462 
     463        #q_data_max = np.max(q_data) 
    464464        if len(data2D.q_data) == None: 
    465465            msg = "Circular averaging: invalid q_data: %g" % data2D.q_data 
     
    469469        nbins = int(math.ceil((self.r_max - self.r_min) / self.bin_width)) 
    470470 
    471         x = numpy.zeros(nbins) 
    472         y = numpy.zeros(nbins) 
    473         err_y = numpy.zeros(nbins) 
    474         err_x = numpy.zeros(nbins) 
    475         y_counts = numpy.zeros(nbins) 
     471        x = np.zeros(nbins) 
     472        y = np.zeros(nbins) 
     473        err_y = np.zeros(nbins) 
     474        err_x = np.zeros(nbins) 
     475        y_counts = np.zeros(nbins) 
    476476 
    477477        for npt in range(len(data)): 
     
    527527 
    528528        err_y = err_y / y_counts 
    529         err_y[err_y == 0] = numpy.average(err_y) 
     529        err_y[err_y == 0] = np.average(err_y) 
    530530        y = y / y_counts 
    531531        x = x / y_counts 
    532         idx = (numpy.isfinite(y)) & (numpy.isfinite(x)) 
     532        idx = (np.isfinite(y)) & (np.isfinite(x)) 
    533533 
    534534        if err_x != None: 
     
    585585 
    586586        # Get data 
    587         data = data2D.data[numpy.isfinite(data2D.data)] 
    588         q_data = data2D.q_data[numpy.isfinite(data2D.data)] 
    589         err_data = data2D.err_data[numpy.isfinite(data2D.data)] 
    590         qx_data = data2D.qx_data[numpy.isfinite(data2D.data)] 
    591         qy_data = data2D.qy_data[numpy.isfinite(data2D.data)] 
     587        data = data2D.data[np.isfinite(data2D.data)] 
     588        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     589        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     590        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     591        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    592592 
    593593        # Set space for 1d outputs 
    594         phi_bins = numpy.zeros(self.nbins_phi) 
    595         phi_counts = numpy.zeros(self.nbins_phi) 
    596         phi_values = numpy.zeros(self.nbins_phi) 
    597         phi_err = numpy.zeros(self.nbins_phi) 
     594        phi_bins = np.zeros(self.nbins_phi) 
     595        phi_counts = np.zeros(self.nbins_phi) 
     596        phi_values = np.zeros(self.nbins_phi) 
     597        phi_err = np.zeros(self.nbins_phi) 
    598598 
    599599        # Shift to apply to calculated phi values in order 
     
    636636            phi_values[i] = 2.0 * math.pi / self.nbins_phi * (1.0 * i) 
    637637 
    638         idx = (numpy.isfinite(phi_bins)) 
     638        idx = (np.isfinite(phi_bins)) 
    639639 
    640640        if not idx.any(): 
     
    769769 
    770770        # Get the all data & info 
    771         data = data2D.data[numpy.isfinite(data2D.data)] 
    772         q_data = data2D.q_data[numpy.isfinite(data2D.data)] 
    773         err_data = data2D.err_data[numpy.isfinite(data2D.data)] 
    774         qx_data = data2D.qx_data[numpy.isfinite(data2D.data)] 
    775         qy_data = data2D.qy_data[numpy.isfinite(data2D.data)] 
     771        data = data2D.data[np.isfinite(data2D.data)] 
     772        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     773        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     774        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     775        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    776776        dq_data = None 
    777777 
     
    803803            dq_overlap_y *= dq_overlap_y 
    804804 
    805             dq_overlap = numpy.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
     805            dq_overlap = np.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
    806806            if dq_overlap < 0: 
    807807                dq_overlap = y_min 
    808             dqx_data = data2D.dqx_data[numpy.isfinite(data2D.data)] 
    809             dqy_data = data2D.dqy_data[numpy.isfinite(data2D.data)] - dq_overlap 
     808            dqx_data = data2D.dqx_data[np.isfinite(data2D.data)] 
     809            dqy_data = data2D.dqy_data[np.isfinite(data2D.data)] - dq_overlap 
    810810            # def; dqx_data = dq_r dqy_data = dq_phi 
    811811            # Convert dq 2D to 1D here 
    812812            dqx = dqx_data * dqx_data 
    813813            dqy = dqy_data * dqy_data 
    814             dq_data = numpy.add(dqx, dqy) 
    815             dq_data = numpy.sqrt(dq_data) 
     814            dq_data = np.add(dqx, dqy) 
     815            dq_data = np.sqrt(dq_data) 
    816816 
    817817        #set space for 1d outputs 
    818         x = numpy.zeros(self.nbins) 
    819         y = numpy.zeros(self.nbins) 
    820         y_err = numpy.zeros(self.nbins) 
    821         x_err = numpy.zeros(self.nbins) 
    822         y_counts = numpy.zeros(self.nbins) 
     818        x = np.zeros(self.nbins) 
     819        y = np.zeros(self.nbins) 
     820        y_err = np.zeros(self.nbins) 
     821        x_err = np.zeros(self.nbins) 
     822        y_counts = np.zeros(self.nbins) 
    823823 
    824824        # Get the min and max into the region: 0 <= phi < 2Pi 
     
    923923                #x[i] = math.sqrt((r_inner * r_inner + r_outer * r_outer) / 2) 
    924924                x[i] = x[i] / y_counts[i] 
    925         y_err[y_err == 0] = numpy.average(y_err) 
    926         idx = (numpy.isfinite(y) & numpy.isfinite(y_err)) 
     925        y_err[y_err == 0] = np.average(y_err) 
     926        idx = (np.isfinite(y) & np.isfinite(y_err)) 
    927927        if x_err != None: 
    928928            d_x = x_err[idx] / y_counts[idx] 
     
    10121012        qx_data = data2D.qx_data 
    10131013        qy_data = data2D.qy_data 
    1014         q_data = numpy.sqrt(qx_data * qx_data + qy_data * qy_data) 
     1014        q_data = np.sqrt(qx_data * qx_data + qy_data * qy_data) 
    10151015 
    10161016        # check whether or not the data point is inside ROI 
     
    11131113 
    11141114        # get phi from data 
    1115         phi_data = numpy.arctan2(qy_data, qx_data) 
     1115        phi_data = np.arctan2(qy_data, qx_data) 
    11161116 
    11171117        # Get the min and max into the region: -pi <= phi < Pi 
Note: See TracChangeset for help on using the changeset viewer.