Changeset c0793dd in sasview
- Timestamp:
- Apr 5, 2017 11:21:10 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:
- 610af69
- Parents:
- bfd34a7 (diff), 98c44f3 (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. - Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
.travis.yml
r4636f57 rbb1cb38 1 # Test Travis CL2 3 1 language: python 4 5 2 matrix: 6 3 include: 7 - os: linux 8 env: 9 - PY=2.7 10 - NUMPYSPEC=numpy 11 - os: osx 12 language: generic 13 env: 14 - PY=2.7 15 - NUMPYSPEC=numpy 16 17 # whitelist 4 - os: linux 5 env: 6 - PY=2.7 7 - NUMPYSPEC=numpy 8 - os: osx 9 language: generic 10 env: 11 - PY=2.7 12 - NUMPYSPEC=numpy 18 13 branches: 19 14 only: 20 - master 21 15 - master 22 16 addons: 23 17 apt: 24 18 packages: 25 - opencl-headers 26 - fglrx 27 - libblas-dev 28 - libatlas-dev 29 - libatlas-base-dev 30 - liblapack-dev 31 - gfortran 32 - libhdf5-serial-dev 33 19 - opencl-headers 20 - fglrx 21 - libblas-dev 22 - libatlas-dev 23 - libatlas-base-dev 24 - liblapack-dev 25 - gfortran 26 - libhdf5-serial-dev 34 27 before_install: 35 - echo $TRAVIS_OS_NAME 36 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 37 wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; 38 sudo apt-get update; sudo apt-get install python-pyopencl; 39 elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 40 wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh; 41 fi 42 43 - bash miniconda.sh -b -p $HOME/miniconda 44 - export PATH="$HOME/miniconda/bin:$PATH" 45 - hash -r 46 - conda update --yes conda 47 48 # Useful for debugging any issues with conda 49 - conda info -a 50 51 # could install other dependencies, but they're locked to specific 52 # versions in build/requirements.txt 53 - conda install --yes python=$PY $NUMPYSPEC scipy cython pylint wxpython 54 28 - echo $TRAVIS_OS_NAME 29 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh 30 -O miniconda.sh; sudo apt-get update; sudo apt-get install python-pyopencl; elif 31 [[ "$TRAVIS_OS_NAME" == "osx" ]]; then wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh 32 -O miniconda.sh; fi 33 - bash miniconda.sh -b -p $HOME/miniconda 34 - export PATH="$HOME/miniconda/bin:$PATH" 35 - hash -r 36 - conda update --yes conda 37 - conda info -a 38 - conda install --yes python=$PY $NUMPYSPEC scipy cython pylint wxpython 55 39 install: 56 - pip install -r build_tools/requirements.txt 57 - pip install matplotlib 58 59 #before_script: 60 # - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then 61 # "export DISPLAY=:99.0"; "sh -e /etc/init.d/xvfb start"; sleep 3; # give xvfb some time to start 62 # fi 63 40 - pip install -r build_tools/requirements.txt 41 - pip install matplotlib 64 42 script: 65 - cd .. 66 # this should be the directory above the sasview directory, where we want to 67 # clone the sasmodels 68 - export WORKSPACE=$(pwd) 69 - git clone --depth=50 --branch=master https://github.com/SasView/sasmodels.git sasmodels 70 71 # required for documentation 72 - git clone --depth=50 --branch=master https://github.com/bumps/bumps.git 73 74 - ls -ltr 75 - if [ ! -d "utils" ]; then mkdir utils; fi 76 - /bin/sh -xe sasview/build_tools/travis_build.sh 77 - export LC_ALL=en_US.UTF-8 78 - export LANG=en_US.UTF-8 79 # - python setup.py docs; echo 0 80 # - python setup.py bdist_egg --skip-build 81 43 - cd .. 44 - export WORKSPACE=$(pwd) 45 - git clone --depth=50 --branch=master https://github.com/SasView/sasmodels.git sasmodels 46 - git clone --depth=50 --branch=master https://github.com/bumps/bumps.git 47 - ls -ltr 48 - if [ ! -d "utils" ]; then mkdir utils; fi 49 - /bin/sh -xe sasview/build_tools/travis_build.sh 50 - export LC_ALL=en_US.UTF-8 51 - export LANG=en_US.UTF-8 52 notifications: 53 slack: 54 secure: TlsEpZiMLmOOgnmdG0I/oB4tq3bbQYeBBQi6S5qLlkYE9EjUTbbfg7oz0JYUsQ56FAsdFR8zswpBsX7PebZerzrq0ZmvfHSiJhOFIdBfY5Nb7bmLW8/9pUNWV57ON/8Gw2fE5ytc7FgvCGR64yb2QISI/150SIUwvdL5HXTxRWI= -
src/sas/sasgui/guiframe/media/data_formats_help.rst
r48b8f6d r98c44f3 4 4 .. by S King, ISIS, during SasView CodeCamp-III in Feb 2015. 5 5 .. WG Bouwman, DUT, added during CodeCamp-V in Oct 2016 the SESANS data format 6 .. WG Bouwman, DUT, updated during CodeCamp-VI in Apr 2017 the SESANS data format 6 7 7 8 .. _Formats: … … 82 83 The file format has a list of name-value pairs at the top of the file which detail the general experimental parameters necessary for fitting and analyzing data. This list should contain all the information necessary for the file to be 'portable' between users. 83 84 84 Following the header is a 6column list of instrument experimental variables:85 Following the header is a 8 (only the first 4 are really needed) column list of instrument experimental variables: 85 86 86 87 - Spin echo length (z, in Angstroms) 88 - depolarization (:math:`log(P/P_0)/(lambda^2 * thickness)`, in Angstrom^-1 cm^-1) 89 - depolarization error in the same unit) (measurement error) 87 90 - Spin echo length error (:math:`\Delta`\ z, in Angstroms) (experimental resolution) 88 - Neutron wavelength (:math:`\lambda`, in Angstroms) (essential for ToF instruments)91 - Neutron wavelength (:math:`\lambda`, in Angstroms) 89 92 - Neutron wavelength error (:math:`\Delta \lambda`, in Angstroms) 90 93 - Normalized polarization (:math:`P/P_0`, unitless) … … 93 96 .. ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 94 97 95 .. note:: This help document was last changed by Steve King, 07Oct201698 .. note:: This help document was last changed by Wim Bouwman, 05Apr2017 -
sasview/test/sesans_data/sphere2micron.ses
r2a2b43a rd37ea0e 1 DataFileTitle "Polystyrene of Markus Strobl, Full Sine, ++ only " 2 Sample "Polystyrene 2 um in 53% H2O, 47% D2O " 3 Settings "D1=D2=20x8 mm,Ds = 16x10 mm (WxH), GF1 =scanning, GF2 = 2.5 A. 2 um polystyrene in 53% H2O, 47% D2O; 8.55% contrast " 4 Operator CPD 5 Date do 10 jul 2014 16:37:30 6 ScanType sine one element scan 7 Thickness [cm] 2.00E-01 8 Q_zmax [\A^-1] 0.05 9 Q_ymax [\A^-1] 0.05 10 11 spin echo length [A] Depolarisation [A-2 cm-1] error depol [A-2 cm-1] error SEL [A] wavelength [A] error wavelength [A] polarisation error pol 12 391.56 0.0041929 0.0036894 19.578 2.11 0.1055 1.0037 0.0032974 13 1564 -0.0046571 0.0038185 78.2 2.11 0.1055 0.99586 0.003386 14 2735.6 -0.017007 0.0038132 136.78 2.11 0.1055 0.98497 0.0033444 15 3907.9 -0.033462 0.0035068 195.39 2.11 0.1055 0.97064 0.0030309 16 5080.2 -0.047483 0.0038208 254.01 2.11 0.1055 0.9586 0.0032613 17 6251.8 -0.070375 0.00376 312.59 2.11 0.1055 0.93926 0.0031446 18 7423.2 -0.092217 0.0037927 371.16 2.11 0.1055 0.92117 0.0031108 19 8595.5 -0.10238 0.004006 429.77 2.11 0.1055 0.91287 0.0032562 20 9767.7 -0.12672 0.0038534 488.39 2.11 0.1055 0.8933 0.0030651 21 10940 -0.1374 0.004243 546.98 2.11 0.1055 0.88484 0.003343 22 12112 -0.16072 0.0045837 605.58 2.11 0.1055 0.86666 0.0035372 23 13284 -0.16623 0.0045613 664.2 2.11 0.1055 0.86242 0.0035027 24 14456 -0.18468 0.0044918 722.79 2.11 0.1055 0.84837 0.0033931 25 15628 -0.19143 0.0048967 781.38 2.11 0.1055 0.84328 0.0036768 26 16800 -0.20029 0.0045421 840.02 2.11 0.1055 0.83666 0.0033837 27 17971 -0.19798 0.0046642 898.56 2.11 0.1055 0.83838 0.0034819 28 19143 -0.21442 0.0047052 957.17 2.11 0.1055 0.82619 0.0034614 29 20316 -0.20885 0.0044931 1015.8 2.11 0.1055 0.8303 0.0033218 30 21488 -0.21393 0.0049186 1074.4 2.11 0.1055 0.82655 0.00362 31 22660 -0.20685 0.004423 1133 2.11 0.1055 0.83179 0.0032758 32 23832 -0.20802 0.0046979 1191.6 2.11 0.1055 0.83092 0.0034758 33 25003 -0.19848 0.0045953 1250.2 2.11 0.1055 0.838 0.0034289 34 26175 -0.21117 0.0044567 1308.8 2.11 0.1055 0.82859 0.0032881 35 27347 -0.21283 0.004137 1367.4 2.11 0.1055 0.82736 0.0030477 36 28520 -0.2042 0.0044587 1426 2.11 0.1055 0.83375 0.0033101 37 29692 -0.2112 0.0042852 1484.6 2.11 0.1055 0.82857 0.0031615 38 30864 -0.20319 0.0043483 1543.2 2.11 0.1055 0.8345 0.003231 39 32036 -0.20752 0.0044297 1601.8 2.11 0.1055 0.83129 0.0032788 40 33207 -0.20654 0.0043188 1660.4 2.11 0.1055 0.83201 0.0031995 41 34380 -0.20126 0.0046375 1719 2.11 0.1055 0.83593 0.0034518 42 35551 -0.20924 0.0042871 1777.6 2.11 0.1055 0.83001 0.0031684 43 36724 -0.21323 0.0045471 1836.2 2.11 0.1055 0.82707 0.0033487 44 37895 -0.21324 0.0045354 1894.7 2.11 0.1055 0.82706 0.00334 45 39067 -0.19905 0.0044141 1953.4 2.11 0.1055 0.83758 0.003292 46 40239 -0.1991 0.0047441 2012 2.11 0.1055 0.83754 0.003538 47 41411 -0.20359 0.0050136 2070.5 2.11 0.1055 0.8342 0.003724 48 42583 -0.21032 0.0049474 2129.1 2.11 0.1055 0.82922 0.0036529 49 43755 -0.20689 0.0048203 2187.8 2.11 0.1055 0.83176 0.00357 50 44927 -0.21075 0.0052337 2246.4 2.11 0.1055 0.8289 0.0038628 51 46099 -0.19956 0.0047827 2304.9 2.11 0.1055 0.8372 0.0035653 1 FileFormatVersion 1.0 2 DataFileTitle Polystyrene of Markus Strobl, Full Sine, ++ only 3 Sample Polystyrene 2 um in 53% H2O, 47% D2O 4 Settings D1=D2=20x8 mm,Ds = 16x10 mm (WxH), GF1 =scanning, GF2 = 2.5 A. 2 um polystyrene in 53% H2O, 47% D2O; 8.55% contrast 5 Operator CPD 6 Date do 10 jul 2014 16:37:30 7 ScanType sine one element scan 8 Thickness 2.00E-01 9 Thickness_unit cm 10 Theta_zmax 0.0168 11 Theta_zmax_unit radians 12 Theta_ymax 0.0168 13 Theta_ymax_unit radians 14 Orientation 0 0 1 15 SpinEchoLength_unit A 16 Depolarisation_unit A-2 cm-1 17 Wavelength_unit A 18 19 BEGIN_DATA 20 SpinEchoLength Depolarisation Depolarisation_error SpinEchoLength_error Wavelength Wavelength_error Polarisation Polarisation_error 21 391.56 0.0041929 0.0036894 19.578 2.11 0.1055 1.0037 0.0032974 22 1564 -0.0046571 0.0038185 78.2 2.11 0.1055 0.99586 0.003386 23 2735.6 -0.017007 0.0038132 136.78 2.11 0.1055 0.98497 0.0033444 24 3907.9 -0.033462 0.0035068 195.39 2.11 0.1055 0.97064 0.0030309 25 5080.2 -0.047483 0.0038208 254.01 2.11 0.1055 0.9586 0.0032613 26 6251.8 -0.070375 0.00376 312.59 2.11 0.1055 0.93926 0.0031446 27 7423.2 -0.092217 0.0037927 371.16 2.11 0.1055 0.92117 0.0031108 28 8595.5 -0.10238 0.004006 429.77 2.11 0.1055 0.91287 0.0032562 29 9767.7 -0.12672 0.0038534 488.39 2.11 0.1055 0.8933 0.0030651 30 10940 -0.1374 0.004243 546.98 2.11 0.1055 0.88484 0.003343 31 12112 -0.16072 0.0045837 605.58 2.11 0.1055 0.86666 0.0035372 32 13284 -0.16623 0.0045613 664.2 2.11 0.1055 0.86242 0.0035027 33 14456 -0.18468 0.0044918 722.79 2.11 0.1055 0.84837 0.0033931 34 15628 -0.19143 0.0048967 781.38 2.11 0.1055 0.84328 0.0036768 35 16800 -0.20029 0.0045421 840.02 2.11 0.1055 0.83666 0.0033837 36 17971 -0.19798 0.0046642 898.56 2.11 0.1055 0.83838 0.0034819 37 19143 -0.21442 0.0047052 957.17 2.11 0.1055 0.82619 0.0034614 38 20316 -0.20885 0.0044931 1015.8 2.11 0.1055 0.8303 0.0033218 39 21488 -0.21393 0.0049186 1074.4 2.11 0.1055 0.82655 0.00362 40 22660 -0.20685 0.004423 1133 2.11 0.1055 0.83179 0.0032758 41 23832 -0.20802 0.0046979 1191.6 2.11 0.1055 0.83092 0.0034758 42 25003 -0.19848 0.0045953 1250.2 2.11 0.1055 0.838 0.0034289 43 26175 -0.21117 0.0044567 1308.8 2.11 0.1055 0.82859 0.0032881 44 27347 -0.21283 0.004137 1367.4 2.11 0.1055 0.82736 0.0030477 45 28520 -0.2042 0.0044587 1426 2.11 0.1055 0.83375 0.0033101 46 29692 -0.2112 0.0042852 1484.6 2.11 0.1055 0.82857 0.0031615 47 30864 -0.20319 0.0043483 1543.2 2.11 0.1055 0.8345 0.003231 48 32036 -0.20752 0.0044297 1601.8 2.11 0.1055 0.83129 0.0032788 49 33207 -0.20654 0.0043188 1660.4 2.11 0.1055 0.83201 0.0031995 50 34380 -0.20126 0.0046375 1719 2.11 0.1055 0.83593 0.0034518 51 35551 -0.20924 0.0042871 1777.6 2.11 0.1055 0.83001 0.0031684 52 36724 -0.21323 0.0045471 1836.2 2.11 0.1055 0.82707 0.0033487 53 37895 -0.21324 0.0045354 1894.7 2.11 0.1055 0.82706 0.00334 54 39067 -0.19905 0.0044141 1953.4 2.11 0.1055 0.83758 0.003292 55 40239 -0.1991 0.0047441 2012 2.11 0.1055 0.83754 0.003538 56 41411 -0.20359 0.0050136 2070.5 2.11 0.1055 0.8342 0.003724 57 42583 -0.21032 0.0049474 2129.1 2.11 0.1055 0.82922 0.0036529 58 43755 -0.20689 0.0048203 2187.8 2.11 0.1055 0.83176 0.00357 59 44927 -0.21075 0.0052337 2246.4 2.11 0.1055 0.8289 0.0038628 60 46099 -0.19956 0.0047827 2304.9 2.11 0.1055 0.8372 0.0035653 -
src/sas/sascalc/dataloader/readers/sesans_reader.py
r9a5097c r2b310602 1 1 """ 2 2 SESANS reader (based on ASCII reader) 3 3 4 4 Reader for .ses or .sesans file format 5 6 Jurrian Bakker 5 6 Jurrian Bakker 7 7 """ 8 8 import numpy as np … … 18 18 _ZERO = 1e-16 19 19 20 20 21 class Reader: 21 22 """ 22 23 Class to load sesans files (6 columns). 23 24 """ 24 # #File type25 # File type 25 26 type_name = "SESANS" 26 27 # #Wildcards27 28 # Wildcards 28 29 type = ["SESANS files (*.ses)|*.ses", 29 30 "SESANS files (*..sesans)|*.sesans"] 30 # #List of allowed extensions31 # List of allowed extensions 31 32 ext = ['.ses', '.SES', '.sesans', '.SESANS'] 32 33 # #Flag to bypass extension check33 34 # Flag to bypass extension check 34 35 allow_all = True 35 36 36 37 def read(self, path): 37 38 # print "reader triggered"39 40 38 """ 41 39 Load data file 42 40 43 41 :param path: file path 44 42 45 43 :return: SESANSData1D object, or None 46 44 47 45 :raise RuntimeError: when the file can't be opened 48 46 :raise ValueError: when the length of the data vectors are inconsistent … … 51 49 basename = os.path.basename(path) 52 50 _, extension = os.path.splitext(basename) 53 if self.allow_all or extension.lower() in self.ext: 54 try: 55 # Read in binary mode since GRASP frequently has no-ascii 56 # characters that brakes the open operation 57 input_f = open(path,'rb') 58 except: 59 raise RuntimeError, "sesans_reader: cannot open %s" % path 60 buff = input_f.read() 61 lines = buff.splitlines() 62 x = np.zeros(0) 63 y = np.zeros(0) 64 dy = np.zeros(0) 65 lam = np.zeros(0) 66 dlam = np.zeros(0) 67 dx = np.zeros(0) 68 69 #temp. space to sort data 70 tx = np.zeros(0) 71 ty = np.zeros(0) 72 tdy = np.zeros(0) 73 tlam = np.zeros(0) 74 tdlam = np.zeros(0) 75 tdx = np.zeros(0) 76 output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam, isSesans=True) 77 self.filename = output.filename = basename 51 if not (self.allow_all or extension.lower() in self.ext): 52 raise RuntimeError("{} has an unrecognized file extension".format(path)) 53 else: 54 raise RunetimeError("{} is not a file".format(path)) 55 with open(path, 'r') as input_f: 56 # Read in binary mode since GRASP frequently has no-ascii 57 # characters that brakes the open operation 58 line = input_f.readline() 59 params = {} 60 while not line.startswith("BEGIN_DATA"): 61 terms = line.split() 62 if len(terms) >= 2: 63 params[terms[0]] = " ".join(terms[1:]) 64 line = input_f.readline() 65 self.params = params 66 headers = input_f.readline().split() 78 67 79 paramnames=[] 80 paramvals=[] 81 zvals=[] 82 dzvals=[] 83 lamvals=[] 84 dlamvals=[] 85 Pvals=[] 86 dPvals=[] 68 data = np.loadtxt(input_f) 69 if data.size < 1: 70 raise RuntimeError("{} is empty".format(path)) 71 x = data[:, headers.index("SpinEchoLength")] 72 dx = data[:, headers.index("SpinEchoLength_error")] 73 lam = data[:, headers.index("Wavelength")] 74 dlam = data[:, headers.index("Wavelength_error")] 75 y = data[:, headers.index("Depolarisation")] 76 dy = data[:, headers.index("Depolarisation_error")] 87 77 88 for line in lines: 89 # Initial try for CSV (split on ,) 90 line=line.strip() 91 toks = line.split('\t') 92 if len(toks)==2: 93 paramnames.append(toks[0]) 94 paramvals.append(toks[1]) 95 if len(toks)>5: 96 zvals.append(toks[0]) 97 dzvals.append(toks[3]) 98 lamvals.append(toks[4]) 99 dlamvals.append(toks[5]) 100 Pvals.append(toks[1]) 101 dPvals.append(toks[2]) 102 else: 103 continue 78 lam_unit = self._unit_fetch("Wavelength") 79 x, x_unit = self._unit_conversion(x, "A", self._unit_fetch("SpinEchoLength")) 80 dx, dx_unit = self._unit_conversion( 81 dx, lam_unit, 82 self._unit_fetch("SpinEchoLength")) 83 dlam, dlam_unit = self._unit_conversion( 84 dlam, lam_unit, 85 self._unit_fetch("Wavelength")) 86 y_unit = self._unit_fetch("Depolarisation") 104 87 105 x=[] 106 y=[] 107 lam=[] 108 dx=[] 109 dy=[] 110 dlam=[] 111 lam_header = lamvals[0].split() 112 data_conv_z = None 113 default_z_unit = "A" 114 data_conv_P = None 115 default_p_unit = " " # Adjust unit for axis (L^-3) 116 lam_unit = lam_header[1].replace("[","").replace("]","") 117 if lam_unit == 'AA': 118 lam_unit = 'A' 119 varheader=[zvals[0],dzvals[0],lamvals[0],dlamvals[0],Pvals[0],dPvals[0]] 120 valrange=range(1, len(zvals)) 121 for i in valrange: 122 x.append(float(zvals[i])) 123 y.append(float(Pvals[i])) 124 lam.append(float(lamvals[i])) 125 dy.append(float(dPvals[i])) 126 dx.append(float(dzvals[i])) 127 dlam.append(float(dlamvals[i])) 88 output = Data1D(x=x, y=y, lam=lam, dy=dy, dx=dx, dlam=dlam, 89 isSesans=True) 128 90 129 x,y,lam,dy,dx,dlam = [ 130 np.asarray(v, 'double') 131 for v in (x,y,lam,dy,dx,dlam) 132 ] 91 output.y_unit = y_unit 92 output.x_unit = x_unit 93 self.filename = output.filename = basename 94 output.xaxis(r"\rm{z}", x_unit) 95 # Adjust label to ln P/(lam^2 t), remove lam column refs 96 output.yaxis(r"\rm{ln(P)/(t \lambda^2)}", y_unit) 97 # Store loading process information 98 output.meta_data['loader'] = self.type_name 99 output.sample.name = params["Sample"] 100 output.sample.ID = params["DataFileTitle"] 101 output.sample.thickness = float( 102 self._unit_conversion( 103 params["Thickness"], "cm", self._unit_fetch("Thickness"))[0]) 133 104 134 input_f.close() 105 output.sample.zacceptance = ( 106 float(params["Theta_zmax"]), 107 self._unit_fetch("Theta_zmax")) 135 108 136 output.x, output.x_unit = self._unit_conversion(x, lam_unit, default_z_unit) 137 output.y = y 138 output.y_unit = r'\AA^{-2} cm^{-1}' # output y_unit added 139 output.dx, output.dx_unit = self._unit_conversion(dx, lam_unit, default_z_unit) 140 output.dy = dy 141 output.lam, output.lam_unit = self._unit_conversion(lam, lam_unit, default_z_unit) 142 output.dlam, output.dlam_unit = self._unit_conversion(dlam, lam_unit, default_z_unit) 143 144 output.xaxis(r"\rm{z}", output.x_unit) 145 output.yaxis(r"\rm{ln(P)/(t \lambda^2)}", output.y_unit) # Adjust label to ln P/(lam^2 t), remove lam column refs 109 output.sample.yacceptance = ( 110 float(params["Theta_ymax"]), 111 self._unit_fetch("Theta_ymax")) 112 return output 146 113 147 # Store loading process information 148 output.meta_data['loader'] = self.type_name 149 #output.sample.thickness = float(paramvals[6]) 150 output.sample.name = paramvals[1] 151 output.sample.ID = paramvals[0] 152 zaccept_unit_split = paramnames[7].split("[") 153 zaccept_unit = zaccept_unit_split[1].replace("]","") 154 if zaccept_unit.strip() == r'\AA^-1' or zaccept_unit.strip() == r'\A^-1': 155 zaccept_unit = "1/A" 156 output.sample.zacceptance=(float(paramvals[7]),zaccept_unit) 157 output.vars = varheader 114 @staticmethod 115 def _unit_conversion(value, value_unit, default_unit): 116 """ 117 Performs unit conversion on a measurement. 158 118 159 if len(output.x) < 1: 160 raise RuntimeError, "%s is empty" % path 161 return output 162 163 else: 164 raise RuntimeError, "%s is not a file" % path 165 return None 166 167 def _unit_conversion(self, value, value_unit, default_unit): 168 if has_converter == True and value_unit != default_unit: 119 :param value: The magnitude of the measurement 120 :param value_unit: a string containing the final desired unit 121 :param default_unit: a string containing the units of the original measurement 122 :return: The magnitude of the measurement in the new units 123 """ 124 # (float, string, string) -> float 125 if has_converter and value_unit != default_unit: 169 126 data_conv_q = Converter(value_unit) 170 127 value = data_conv_q(value, units=default_unit) … … 173 130 new_unit = value_unit 174 131 return value, new_unit 132 133 def _unit_fetch(self, unit): 134 return self.params[unit+"_unit"]
Note: See TracChangeset
for help on using the changeset viewer.