Changeset 63
- Timestamp:
- Sep 19, 2014 5:04:48 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/uvmapgenerator.py
r42 r63 3 3 import collections 4 4 import numpy as np 5 6 import pointingerrorgenerators 5 7 6 8 … … 9 11 """ 10 12 11 def __init__(self, parameters ):13 def __init__(self, parameters, previous_results): 12 14 self.parameters = parameters 15 self.previous_results = previous_results 13 16 self.result = collections.OrderedDict() 14 17 15 18 def run(self): 16 19 print 'UVMapGenerator.run' 20 21 # The FTS mirror positions per scan. This is found from the 22 # FTS results that should have already been calculated. 23 fts = self.previous_results['fts'] 24 self.result['ftsnsample'] = ftsnsample = fts['ftsnsample'] 25 delta_opd = fts['delta_opd'] 26 17 27 interferometer = self.parameters['substages']['Interferometer'] 18 28 … … 31 41 n_laps = (bmax - bmin) / bstep 32 42 43 # n_baselines = 50 33 44 bxby = np.zeros([n_baselines,2]) 45 # bxby[0,0] = 10.0 46 # bxby[0,1] = 0.0 47 # bxby[1,0] = 20.0 48 # bxby[1,1] = 0.0 49 # bxby[2,0] = 30.0 50 # bxby[2,1] = 0.0 51 # bxby[3,0] = 40.0 52 # bxby[3,1] = 0.0 53 # bxby[4,0] = 0.0 54 # bxby[4,1] = 10.0 55 # bxby[5,0] = 0.0 56 # bxby[5,1] = 20.0 57 # bxby[6,0] = 0.0 58 # bxby[6,1] = 30.0 59 # bxby[7,0] = 0.0 60 # bxby[7,1] = 40.0 61 # bxby[8,0] = 40.0 62 # bxby[8,1] = 40.0 63 # bxby[9,0] = 20.0 64 # bxby[9,1] = 20.0 65 # bxby[10,0] = 30.0 66 # bxby[10,1] = 30.0 67 34 68 35 69 # n_baselines is total number of points along spiral 36 for i in range(n_baselines):70 for ib in range(n_baselines): 37 71 # phi is angle around spiral, r its radius 38 phi = n_laps * 2 * np.pi * (n_baselines-i ) / n_baselines72 phi = n_laps * 2 * np.pi * (n_baselines-ib) / n_baselines 39 73 r = bmin + bstep * phi / (2 * np.pi) 40 74 41 bxby[i ,:] = [r * np.cos(phi), r * np.sin(phi)]75 bxby[ib,:] = [r * np.cos(phi), r * np.sin(phi)] 42 76 77 self.result['pattern'] = pattern 43 78 self.result['bxby'] = bxby 44 79 self.result['bmin'] = bmin 45 80 self.result['bmax'] = bmax 46 81 self.result['n_baselines'] = n_baselines 82 83 # Construct the obs framework that will give one FTS 84 # scan at each baseline. 85 86 # The framework will hold the baseline and FTS mirror position 87 # for each time that the detector is read. 88 89 # The observation consists of a series of FTS scans. The 90 # instrument baseline, pointing etc. can change continuously 91 # as the scan is performed. 92 93 obs_framework = [] 94 Config = collections.namedtuple('Config', [ 95 'scan_number', 96 'baseline_x', 'baseline_y', 'baseline_z', 'baseline_number', 97 'fts_position', 'fts_nominal_position', 'fts_start', 98 'point1_x_error', 'point1_y_error', 99 'point2_x_error', 'point2_y_error', 100 'data'], 101 verbose=False) 102 103 for ib in range(n_baselines): 104 opd_start = -((ftsnsample + 1) / 2) * delta_opd 105 106 fts_start = True 107 for ifts in np.arange(ftsnsample): 108 opd = opd_start + float(ifts) * delta_opd 109 fts_mirror = opd / 2.0 110 config = Config(ib, bxby[ib][0], bxby[ib][1], 0.0, ib, 111 fts_mirror, fts_mirror, fts_start, 0.0, 0.0, 0.0, 112 0.0, None) 113 obs_framework.append(config) 114 fts_start = False 115 116 png = pointingerrorgenerators.GaussianPointingErrors(mu0=1.0, 117 sigma0=0.0, mu1=0.0, sigma1=0.0) 118 png.fill(obs_framework) 119 120 self.result['obs_framework'] = obs_framework 47 121 48 122 else: … … 52 126 53 127 def __repr__(self): 54 return 'UVMapGenerator' 128 return ''' 129 UVMapGenerator: 130 uv pattern : {pattern} 131 FTS samples/scan: {ftsnsample} 132 obs.framework length: {len_framework} 133 '''.format( 134 pattern=self.result['pattern'], 135 ftsnsample=self.result['ftsnsample'], 136 len_framework=len(self.result['obs_framework'])) 55 137 138
Note:
See TracChangeset
for help on using the changeset viewer.