Changes in / [f2940c4:9c0f3c17] in sasview


Ignore:
Files:
3 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 
     
    8282    if data2d.data is None or data2d.x_bins is None or data2d.y_bins is 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)) 
     94 
    9495    else: 
    9596        new_err_data = data2d.err_data.flatten() 
    96     mask = numpy.ones(len(new_data), dtype=bool) 
     97    mask = np.ones(len(new_data), dtype=bool) 
    9798 
    9899    #TODO: make sense of the following two lines... 
     
    149150 
    150151        # 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)] 
     152        data = data2D.data[np.isfinite(data2D.data)] 
     153        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     154        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     155        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    155156 
    156157        # Build array of Q intervals 
     
    170171            raise RuntimeError, "_Slab._avg: unrecognized axis %s" % str(maj) 
    171172 
    172         x = numpy.zeros(nbins) 
    173         y = numpy.zeros(nbins) 
    174         err_y = numpy.zeros(nbins) 
    175         y_counts = numpy.zeros(nbins) 
     173        x = np.zeros(nbins) 
     174        y = np.zeros(nbins) 
     175        err_y = np.zeros(nbins) 
     176        y_counts = np.zeros(nbins) 
    176177 
    177178        # Average pixelsize in q space 
     
    225226        y = y / y_counts 
    226227        x = x / y_counts 
    227         idx = (numpy.isfinite(y) & numpy.isfinite(x)) 
     228        idx = (np.isfinite(y) & np.isfinite(x)) 
    228229 
    229230        if not idx.any(): 
     
    304305            raise RuntimeError, msg 
    305306        # 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)] 
     307        data = data2D.data[np.isfinite(data2D.data)] 
     308        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     309        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     310        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    310311 
    311312        y = 0.0 
     
    414415        """ 
    415416        # 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)] 
     417        data = data2D.data[np.isfinite(data2D.data)] 
     418        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     419        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     420        mask_data = data2D.mask[np.isfinite(data2D.data)] 
    420421 
    421422        dq_data = None 
     
    448449            dq_overlap_y *= dq_overlap_y 
    449450 
    450             dq_overlap = numpy.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
     451            dq_overlap = np.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
    451452            # Final protection of dq 
    452453            if dq_overlap < 0: 
    453454                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 
     455            dqx_data = data2D.dqx_data[np.isfinite(data2D.data)] 
     456            dqy_data = data2D.dqy_data[np.isfinite(data2D.data)] - dq_overlap 
    456457            # def; dqx_data = dq_r dqy_data = dq_phi 
    457458            # Convert dq 2D to 1D here 
    458459            dqx = dqx_data * dqx_data 
    459460            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) 
     461            dq_data = np.add(dqx, dqy) 
     462            dq_data = np.sqrt(dq_data) 
     463 
     464        #q_data_max = np.max(q_data) 
    464465        if len(data2D.q_data) == None: 
    465466            msg = "Circular averaging: invalid q_data: %g" % data2D.q_data 
     
    469470        nbins = int(math.ceil((self.r_max - self.r_min) / self.bin_width)) 
    470471 
    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) 
     472        x = np.zeros(nbins) 
     473        y = np.zeros(nbins) 
     474        err_y = np.zeros(nbins) 
     475        err_x = np.zeros(nbins) 
     476        y_counts = np.zeros(nbins) 
    476477 
    477478        for npt in range(len(data)): 
     
    527528 
    528529        err_y = err_y / y_counts 
    529         err_y[err_y == 0] = numpy.average(err_y) 
     530        err_y[err_y == 0] = np.average(err_y) 
    530531        y = y / y_counts 
    531532        x = x / y_counts 
    532         idx = (numpy.isfinite(y)) & (numpy.isfinite(x)) 
     533        idx = (np.isfinite(y)) & (np.isfinite(x)) 
    533534 
    534535        if err_x != None: 
     
    585586 
    586587        # 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)] 
     588        data = data2D.data[np.isfinite(data2D.data)] 
     589        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     590        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     591        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     592        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    592593 
    593594        # 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) 
     595        phi_bins = np.zeros(self.nbins_phi) 
     596        phi_counts = np.zeros(self.nbins_phi) 
     597        phi_values = np.zeros(self.nbins_phi) 
     598        phi_err = np.zeros(self.nbins_phi) 
    598599 
    599600        # Shift to apply to calculated phi values in order 
     
    636637            phi_values[i] = 2.0 * math.pi / self.nbins_phi * (1.0 * i) 
    637638 
    638         idx = (numpy.isfinite(phi_bins)) 
     639        idx = (np.isfinite(phi_bins)) 
    639640 
    640641        if not idx.any(): 
     
    769770 
    770771        # 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)] 
     772        data = data2D.data[np.isfinite(data2D.data)] 
     773        q_data = data2D.q_data[np.isfinite(data2D.data)] 
     774        err_data = data2D.err_data[np.isfinite(data2D.data)] 
     775        qx_data = data2D.qx_data[np.isfinite(data2D.data)] 
     776        qy_data = data2D.qy_data[np.isfinite(data2D.data)] 
    776777        dq_data = None 
    777778 
     
    803804            dq_overlap_y *= dq_overlap_y 
    804805 
    805             dq_overlap = numpy.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
     806            dq_overlap = np.sqrt((dq_overlap_x + dq_overlap_y) / 2.0) 
    806807            if dq_overlap < 0: 
    807808                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 
     809            dqx_data = data2D.dqx_data[np.isfinite(data2D.data)] 
     810            dqy_data = data2D.dqy_data[np.isfinite(data2D.data)] - dq_overlap 
    810811            # def; dqx_data = dq_r dqy_data = dq_phi 
    811812            # Convert dq 2D to 1D here 
    812813            dqx = dqx_data * dqx_data 
    813814            dqy = dqy_data * dqy_data 
    814             dq_data = numpy.add(dqx, dqy) 
    815             dq_data = numpy.sqrt(dq_data) 
     815            dq_data = np.add(dqx, dqy) 
     816            dq_data = np.sqrt(dq_data) 
    816817 
    817818        #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) 
     819        x = np.zeros(self.nbins) 
     820        y = np.zeros(self.nbins) 
     821        y_err = np.zeros(self.nbins) 
     822        x_err = np.zeros(self.nbins) 
     823        y_counts = np.zeros(self.nbins) 
    823824 
    824825        # Get the min and max into the region: 0 <= phi < 2Pi 
     
    923924                #x[i] = math.sqrt((r_inner * r_inner + r_outer * r_outer) / 2) 
    924925                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)) 
     926        y_err[y_err == 0] = np.average(y_err) 
     927        idx = (np.isfinite(y) & np.isfinite(y_err)) 
    927928        if x_err != None: 
    928929            d_x = x_err[idx] / y_counts[idx] 
     
    10121013        qx_data = data2D.qx_data 
    10131014        qy_data = data2D.qy_data 
    1014         q_data = numpy.sqrt(qx_data * qx_data + qy_data * qy_data) 
     1015        q_data = np.sqrt(qx_data * qx_data + qy_data * qy_data) 
    10151016 
    10161017        # check whether or not the data point is inside ROI 
     
    11131114 
    11141115        # get phi from data 
    1115         phi_data = numpy.arctan2(qy_data, qx_data) 
     1116        phi_data = np.arctan2(qy_data, qx_data) 
    11161117 
    11171118        # Get the min and max into the region: -pi <= phi < Pi 
  • src/sas/sascalc/dataloader/readers/IgorReader.py

    rdd11014 r9a5097c  
    1414import os 
    1515 
     16import numpy as np 
     17import math 
     18#import logging 
     19 
    1620from sas.sascalc.dataloader.data_info import Data2D 
    1721from sas.sascalc.dataloader.data_info import Detector 
    1822from sas.sascalc.dataloader.manipulations import reader2D_converter 
    19 import numpy as np 
    2023 
    2124# Look for unit converter 
     
    6265            data_conv_i(1.0, output.I_unit) 
    6366 
     67        for line in lines: 
     68             
     69            # Find setup info line 
     70            if isInfo: 
     71                isInfo = False 
     72                line_toks = line.split() 
     73                # Wavelength in Angstrom 
     74                try: 
     75                    wavelength = float(line_toks[1]) 
     76                except: 
     77                    msg = "IgorReader: can't read this file, missing wavelength" 
     78                    raise ValueError, msg 
     79                 
     80            #Find # of bins in a row assuming the detector is square. 
     81            if dataStarted == True: 
     82                try: 
     83                    value = float(line) 
     84                except: 
     85                    # Found a non-float entry, skip it 
     86                    continue 
     87                 
     88                # Get total bin number 
     89                 
     90            i_tot_row += 1 
     91        i_tot_row = math.ceil(math.sqrt(i_tot_row)) - 1 
     92        #print "i_tot", i_tot_row 
     93        size_x = i_tot_row  # 192#128 
     94        size_y = i_tot_row  # 192#128 
     95        output.data = np.zeros([size_x, size_y]) 
     96        output.err_data = np.zeros([size_x, size_y]) 
     97   
    6498        data_row = 0 
    6599        wavelength = distance = center_x = center_y = None 
  • test/sasdataloader/test/utest_abs_reader.py

    rdd11014 r9a5097c  
    44 
    55import unittest 
     6 
    67import math 
    78import numpy as np 
     
    1011from sas.sascalc.dataloader.data_info import Data1D 
    1112  
    12 import os.path 
    1313 
    1414class abs_reader(unittest.TestCase): 
Note: See TracChangeset for help on using the changeset viewer.