Changeset 6eaf89ea in sasview for src/sas/sascalc/file_converter/bsl_loader.py
- Timestamp:
- Aug 5, 2016 3:49:33 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.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- c3f0114
- Parents:
- e5308b6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/sascalc/file_converter/bsl_loader.py
re5308b6 r6eaf89ea 1 1 from sas.sascalc.file_converter.core.bsl_loader import CLoader 2 from copy import deepcopy 3 import os 2 4 import numpy as np 3 5 … … 6 8 # TODO: Change to __init__(self, filename, frame) 7 9 # and parse n_(pixels/rasters) from header file 8 def __init__(self, filename, frame, n_pixels, n_rasters): 9 CLoader.__init__(self, filename, frame, n_pixels, n_rasters) 10 def __init__(self, filename, frame): 11 header_file = open(filename, 'r') 12 data_info = {} 13 is_valid = True 14 err_msg = "" 10 15 11 # See invertor.py for implementation of pickling and setters/getters 16 [folder, filename] = os.path.split(filename) 17 18 # First 2 lines are headers 19 header_file.readline() 20 header_file.readline() 21 22 while True: 23 import pdb; pdb.set_trace() 24 metadata = header_file.readline().strip() 25 metadata = metadata.split() 26 data_filename = header_file.readline().strip() 27 28 if len(metadata) != 10: 29 is_valid = False 30 err_msg = "Invalid header file: {}".format(filename) 31 break 32 # SAS data will be in file Xnn001.mdd 33 if data_filename != filename.replace('0.', '1.'): 34 continue 35 try: 36 data_info = { 37 'filename': os.path.join(folder, data_filename), 38 'pixels': int(metadata[0]), 39 'rasters': int(metadata[1]), 40 'frames': int(metadata[2]), 41 'swap_bytes': int(metadata[3]) 42 } 43 except: 44 is_valid = False 45 err_msg = "Invalid metadata in header file for {}".format(filename.replace('0.', '1.')) 46 break 47 48 if not is_valid: 49 raise Exception(err_msg) 50 51 if data_info['frames'] == 1: 52 # File is actually in OTOKO (1D) format 53 # Number of frames is 2nd indicator, 54 data_info['frames'] = data_info['rasters'] 55 data_info['rasters'] = data_info['pixels'] 56 data_info['pixels'] = 1 57 58 CLoader.__init__(self, data_info['filename'], frame, 59 data_info['pixels'], data_info['rasters'], data_info['swap_bytes']) 12 60 13 61 def __setattr__(self, name, value): … … 20 68 elif name == 'n_rasters': 21 69 return self.set_n_rasters(value) 22 return CBSLLoader.__set_attr__(self, name, value) 70 elif name == 'swap_bytes': 71 return self.set_swap_bytes(value) 72 return CLoader.__setattr__(self, name, value) 23 73 24 74 def __getattr__(self, name): … … 31 81 elif name == 'n_rasters': 32 82 return self.get_n_rasters() 33 return CBSLLoader.__getattr__(self, name) 83 elif name == 'swap_bytes': 84 return self.get_swap_bytes() 85 return CLoader.__getattr__(self, name) 34 86 35 87 def create_arr(self):
Note: See TracChangeset
for help on using the changeset viewer.