Changeset cfc6f3c7 in sasview for src/sas/sascalc/data_util
- Timestamp:
- Apr 5, 2017 7:21:31 AM (8 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 69400ec
- Parents:
- 270c882b (diff), a2e980b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Location:
- src/sas/sascalc/data_util
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/data_util/err1d.py
rb699768 r9a5097c 8 8 """ 9 9 from __future__ import division # Get true division 10 import numpy 10 import numpy as np 11 11 12 12 … … 59 59 def exp(X, varX): 60 60 """Exponentiation with error propagation""" 61 Z = n umpy.exp(X)61 Z = np.exp(X) 62 62 varZ = varX * Z**2 63 63 return Z, varZ … … 66 66 def log(X, varX): 67 67 """Logarithm with error propagation""" 68 Z = n umpy.log(X)68 Z = np.log(X) 69 69 varZ = varX / X**2 70 70 return Z, varZ … … 73 73 # def pow(X,varX, Y,varY): 74 74 # Z = X**Y 75 # varZ = (Y**2 * varX/X**2 + varY * n umpy.log(X)**2) * Z**275 # varZ = (Y**2 * varX/X**2 + varY * np.log(X)**2) * Z**2 76 76 # return Z,varZ 77 77 # -
src/sas/sascalc/data_util/formatnum.py
rb699768 r9a5097c 40 40 41 41 import math 42 import numpy 42 import numpy as np 43 43 __all__ = ['format_uncertainty', 'format_uncertainty_pm', 44 44 'format_uncertainty_compact'] … … 102 102 """ 103 103 # Handle indefinite value 104 if n umpy.isinf(value):104 if np.isinf(value): 105 105 return "inf" if value > 0 else "-inf" 106 if n umpy.isnan(value):106 if np.isnan(value): 107 107 return "NaN" 108 108 109 109 # Handle indefinite uncertainty 110 if uncertainty is None or uncertainty <= 0 or n umpy.isnan(uncertainty):110 if uncertainty is None or uncertainty <= 0 or np.isnan(uncertainty): 111 111 return "%g" % value 112 if n umpy.isinf(uncertainty):112 if np.isinf(uncertainty): 113 113 if compact: 114 114 return "%.2g(inf)" % value … … 279 279 280 280 # non-finite values 281 assert value_str(-n umpy.inf,None) == "-inf"282 assert value_str(n umpy.inf,None) == "inf"283 assert value_str(n umpy.NaN,None) == "NaN"281 assert value_str(-np.inf,None) == "-inf" 282 assert value_str(np.inf,None) == "inf" 283 assert value_str(np.NaN,None) == "NaN" 284 284 285 285 # bad or missing uncertainty 286 assert value_str(-1.23567,n umpy.NaN) == "-1.23567"287 assert value_str(-1.23567,-n umpy.inf) == "-1.23567"286 assert value_str(-1.23567,np.NaN) == "-1.23567" 287 assert value_str(-1.23567,-np.inf) == "-1.23567" 288 288 assert value_str(-1.23567,-0.1) == "-1.23567" 289 289 assert value_str(-1.23567,0) == "-1.23567" 290 290 assert value_str(-1.23567,None) == "-1.23567" 291 assert value_str(-1.23567,n umpy.inf) == "-1.2(inf)"291 assert value_str(-1.23567,np.inf) == "-1.2(inf)" 292 292 293 293 def test_pm(): … … 410 410 411 411 # non-finite values 412 assert value_str(-n umpy.inf,None) == "-inf"413 assert value_str(n umpy.inf,None) == "inf"414 assert value_str(n umpy.NaN,None) == "NaN"412 assert value_str(-np.inf,None) == "-inf" 413 assert value_str(np.inf,None) == "inf" 414 assert value_str(np.NaN,None) == "NaN" 415 415 416 416 # bad or missing uncertainty 417 assert value_str(-1.23567,n umpy.NaN) == "-1.23567"418 assert value_str(-1.23567,-n umpy.inf) == "-1.23567"417 assert value_str(-1.23567,np.NaN) == "-1.23567" 418 assert value_str(-1.23567,-np.inf) == "-1.23567" 419 419 assert value_str(-1.23567,-0.1) == "-1.23567" 420 420 assert value_str(-1.23567,0) == "-1.23567" 421 421 assert value_str(-1.23567,None) == "-1.23567" 422 assert value_str(-1.23567,n umpy.inf) == "-1.2 +/- inf"422 assert value_str(-1.23567,np.inf) == "-1.2 +/- inf" 423 423 424 424 def test_default(): -
src/sas/sascalc/data_util/qsmearing.py
r775e0b7 r9a5097c 9 9 #copyright 2008, University of Tennessee 10 10 ###################################################################### 11 import numpy12 11 import math 13 12 import logging … … 60 59 if data.dx is not None and data.isSesans: 61 60 #if data.dx[0] > 0.0: 62 if n umpy.size(data.dx[data.dx <= 0]) == 0:61 if np.size(data.dx[data.dx <= 0]) == 0: 63 62 _found_sesans = True 64 63 # if data.dx[0] <= 0.0: 65 if n umpy.size(data.dx[data.dx <= 0]) > 0:64 if np.size(data.dx[data.dx <= 0]) > 0: 66 65 raise ValueError('one or more of your dx values are negative, please check the data file!') 67 66 … … 121 120 self.resolution = resolution 122 121 if offset is None: 123 offset = n umpy.searchsorted(self.resolution.q_calc, self.resolution.q[0])122 offset = np.searchsorted(self.resolution.q_calc, self.resolution.q[0]) 124 123 self.offset = offset 125 124 … … 137 136 start, end = first_bin + self.offset, last_bin + self.offset 138 137 q_calc = self.resolution.q_calc 139 iq_calc = n umpy.empty_like(q_calc)138 iq_calc = np.empty_like(q_calc) 140 139 if start > 0: 141 140 iq_calc[:start] = self.model.evalDistribution(q_calc[:start]) … … 157 156 """ 158 157 q = self.resolution.q 159 first = n umpy.searchsorted(q, q_min)160 last = n umpy.searchsorted(q, q_max)158 first = np.searchsorted(q, q_min) 159 last = np.searchsorted(q, q_max) 161 160 return first, min(last,len(q)-1) 162 161 -
src/sas/sascalc/data_util/uncertainty.py
rb699768 r9a5097c 17 17 from __future__ import division 18 18 19 import numpy 19 import numpy as np 20 20 import err1d 21 21 from formatnum import format_uncertainty … … 27 27 class Uncertainty(object): 28 28 # Make standard deviation available 29 def _getdx(self): return n umpy.sqrt(self.variance)29 def _getdx(self): return np.sqrt(self.variance) 30 30 def _setdx(self,dx): 31 31 # Direct operation … … 144 144 return self 145 145 def __abs__(self): 146 return Uncertainty(n umpy.abs(self.x),self.variance)146 return Uncertainty(np.abs(self.x),self.variance) 147 147 148 148 def __str__(self): 149 #return str(self.x)+" +/- "+str(n umpy.sqrt(self.variance))150 if n umpy.isscalar(self.x):151 return format_uncertainty(self.x,n umpy.sqrt(self.variance))149 #return str(self.x)+" +/- "+str(np.sqrt(self.variance)) 150 if np.isscalar(self.x): 151 return format_uncertainty(self.x,np.sqrt(self.variance)) 152 152 else: 153 153 return [format_uncertainty(v,dv) 154 for v,dv in zip(self.x,n umpy.sqrt(self.variance))]154 for v,dv in zip(self.x,np.sqrt(self.variance))] 155 155 def __repr__(self): 156 156 return "Uncertainty(%s,%s)"%(str(self.x),str(self.variance)) … … 287 287 # =============== vector operations ================ 288 288 # Slicing 289 z = Uncertainty(n umpy.array([1,2,3,4,5]),numpy.array([2,1,2,3,2]))289 z = Uncertainty(np.array([1,2,3,4,5]),np.array([2,1,2,3,2])) 290 290 assert z[2].x == 3 and z[2].variance == 2 291 291 assert (z[2:4].x == [3,4]).all() 292 292 assert (z[2:4].variance == [2,3]).all() 293 z[2:4] = Uncertainty(n umpy.array([8,7]),numpy.array([4,5]))293 z[2:4] = Uncertainty(np.array([8,7]),np.array([4,5])) 294 294 assert z[2].x == 8 and z[2].variance == 4 295 A = Uncertainty(n umpy.array([a.x]*2),numpy.array([a.variance]*2))296 B = Uncertainty(n umpy.array([b.x]*2),numpy.array([b.variance]*2))295 A = Uncertainty(np.array([a.x]*2),np.array([a.variance]*2)) 296 B = Uncertainty(np.array([b.x]*2),np.array([b.variance]*2)) 297 297 298 298 # TODO complete tests of copy and inplace operations for vectors and slices. -
src/sas/sascalc/data_util/registry.py
rb699768 r270c882b 7 7 """ 8 8 9 import os.path 9 from sas.sascalc.dataloader.loader_exceptions import NoKnownLoaderException 10 10 11 11 12 class ExtensionRegistry(object): … … 61 62 def __init__(self, **kw): 62 63 self.loaders = {} 64 63 65 def __setitem__(self, ext, loader): 64 66 if ext not in self.loaders: 65 67 self.loaders[ext] = [] 66 68 self.loaders[ext].insert(0,loader) 69 67 70 def __getitem__(self, ext): 68 71 return self.loaders[ext] 72 69 73 def __contains__(self, ext): 70 74 return ext in self.loaders 75 71 76 def formats(self): 72 77 """ … … 76 81 names.sort() 77 82 return names 83 78 84 def extensions(self): 79 85 """ … … 83 89 exts.sort() 84 90 return exts 91 85 92 def lookup(self, path): 86 93 """ … … 105 112 # Raise an error if there are no matching extensions 106 113 if len(loaders) == 0: 107 raise ValueError , "Unknown file type for "+path114 raise ValueError("Unknown file type for "+path) 108 115 # All done 109 116 return loaders 117 110 118 def load(self, path, format=None): 111 119 """ … … 117 125 """ 118 126 if format is None: 119 loaders = self.lookup(path) 127 try: 128 loaders = self.lookup(path) 129 except ValueError as e: 130 pass 120 131 else: 121 loaders = self.loaders[format] 132 try: 133 loaders = self.loaders[format] 134 except KeyError as e: 135 pass 122 136 for fn in loaders: 123 137 try: 124 138 return fn(path) 125 except :126 pass # give other loaders a chance to succeed139 except Exception as e: 140 pass # give other loaders a chance to succeed 127 141 # If we get here it is because all loaders failed 128 raise # reraises lastexception142 raise NoKnownLoaderException(e.message) # raise generic exception 129 143 144 145 # TODO: Move this to the unit test folder 130 146 def test(): 131 147 reg = ExtensionRegistry() … … 163 179 try: reg.load('hello.missing') 164 180 except ValueError,msg: 165 assert str(msg)=="Unknown file type for hello.missing",'Message: <%s>'%(msg) 181 assert str(msg)=="Unknown file type for hello.missing",\ 182 'Message: <%s>'%(msg) 166 183 else: raise AssertError,"No error raised for missing extension" 167 184 assert reg.formats() == ['new_cx']
Note: See TracChangeset
for help on using the changeset viewer.